问题描述
考虑
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 (将#修改为@)