在执行时接收另一个类的打印内容,而不是在函数结束之后



我尝试过的:

import import_ipynb
import time
class A:
def func1(self):
for i in range(0, 5):
print(i)
time.sleep(1)
class B:
print('Time is:', A().func1())

class B中,我想在class A中获得print的内容,并将'Time is:'添加到开头并在控制台中打印。一种解决方案是在函数末尾将i作为列表返回,但我希望i是即时的,而不是在函数完全执行时。我编写的代码没有正确执行此操作
我想要的输出是:

Time is: 0
Time is: 1
Time is: 2
Time is: 3
Time is: 4

假设您不想只将print(i)更改为print(f"Time is: {i}"),您可以从函数中yield i,然后在调用站点打印:

import time
def func1():
for i in range(0, 5):
yield i
time.sleep(1)
for i in func1():
print(f"Time is: {i}")

我去掉了这些课,因为它们都与问题没有直接关系。

CCD_ 10将CCD_。调用func1返回一个生成器,该生成器根据需要生成值。

有两种方法可以做到这一点,一种是使其生成器成为致癌物展示,另一种是让您的功能更可定制

import time
def func1(sufix=""):
for i in range(5):
print(sufix,i)
time.sleep(1)

func1("Time is: ")

最新更新