python - 在执行时而不是在函数结束之后接收另一个类的打印内容
问题描述
我试过的:
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
我想获取print
内容class A
并添加'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}")
我摆脱了这些课程,因为它们都与问题没有直接关系。
yield
变成func1
一个生成器函数。调用func1
会返回一个生成器,该生成器会根据需要生成值。
推荐阅读
- javascript - 调用 ReactDOM.render() 函数而不是使用有状态组件
- node.js - mongoose.connect 不是一个函数 - React Native
- html - 如何使我的图片正确显示?
- string - 解码 Unicode 字符
- javascript - javascript 获取 S3 存储桶上资源的问题(由 Cloudfront 提供)
- java - 查找对并查找 m 变量的值
- javascript - 用按钮添加数字
- pine-script - 计数器无限增加。如何重置?
- automation - 如何在 Cypress 中获取部分 url
- c - 指向 C 结构中函数的指针