如何解决如何从 Python 的内部函数中产生,或者,如何将循环转换为生成器,而不直接调用 yield?
考虑
def gen():
for i in range(5):
yield i
for n in gen():
print(n)
印刷品
0
1
2
3
4
现在,假设我有 data_source(foo)
可以接受任何函数 foo
。它自行迭代,并对迭代器返回的内容执行 foo
。
def foo(n: int):
print(n)
def data_source(foo):
for i in range(5):
foo(i)
data_source(foo)
印刷品
0
1
2
3
4
我想将 data_source
转换为生成器而不改变 data_source
。
可以对 foo
做任何事情,并且可以根据需要包装 data_source
。
我想要类似的东西
def foo(n: int):
yield n
def data_source(foo):
for i in range(5):
foo(i)
for i in data_source(foo):
print(i)
显然失败了
TypeError: 'NoneType' 对象不可迭代
是否可以通过回调将循环转换为生成器,而无需接触 data_source 本身?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。