【发布时间】:2018-11-17 16:23:58
【问题描述】:
我正在寻找一个代码来复制生成器,然后继续使用新的生成器。它就像发电机的分叉。
def Generator():
myNumbers=range(3)
for i in myNumbers:
yield i
for i in Generator():
bifurcatedGenerator = Generator
for j in bifurcatedGenerator():
print (i, j)
这段代码作为输出给出:
0 0
0 1
0 2
1 0
1 1
1 2 <- wrong
2 0
2 1 <- wrong
2 2 <- wrong
而分散的输出应该是:(分叉的生成器需要是一个新实例,但在旧生成器停止的同一点继续。)
0 0
0 1
0 2
1 1
1 2
2 2
应用程序本身要复杂得多,这里只是一个代码示例。
Important(仅对我自己而言)是一个语义优美的解决方案,第三方可读性很好。效率并不那么重要
【问题讨论】:
标签: python python-3.x algorithm generator yield