今天我玩弄了嵌套的生成器函数,发现了一个有趣的属性/行为,我无法向自己解释.
也许这与缺乏对yield from... 的理解有关.但是,现在问题是:
def foo():
for iter in range(10):
yield iter
generator = foo()
def bar():
yield from generator
print(next(bar()), end=' ')
print(next(bar()), end=' ')
...
Run Code Online (Sandbox Code Playgroud)
所以我排除的输出就是0 1 ....
但是,在第一次成功调用之后next,我得到:Traceback(最近一次调用最后一次):文件"",第1行,在StopIteration中
所以我的问题是:为什么发电机已经到了终点?