我知道您可以使用.send(value)
将值发送给生成器。我也知道你可以在for循环中遍历一个生成器。在for循环中迭代它时,是否可以将值传递给生成器?如何将值传递给for循环中的生成器?
我试图做的是
def example():
previous = yield
for i range(0,10):
previous = yield previous*i
t = example()
for value in example"...pass in a value?...":
"...do something with the result..."
你有没有试过(tldr不要在同一个函数混合发电机和协同程序)是什么结果是......你不能在'for'语句中发送一个值。但是你可以使用'while'。 – AChampion
如果我使用while循环,我需要捕获一个'StopIteration',它增加了很多样板。 – mklauber
你觉得嵌套的生成器是更易于理解的代码? – AChampion