我玩弄发电机,以便更好地了解他们的工作,但我很困惑与下面这段代码的结果:Python的发电机:混乱的结果
>>> def gen():
... for i in range(5):
... yield i
...
>>> count=gen()
>>> for i in count:
... print count.next()
...
1
3
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
StopIteration
>>>
这是怎么回事?看起来像它击中“为我计数:”行生成器产生第一个值。我不确定。
编辑:我应该补充一点,我并没有试图“弄清楚”。我试图破解一些东西,看看Python如何反应。当我生成错误时,我会更多地了解该语言。这个错误让我感到遗憾,但现在已经很清楚了。 到目前为止,所有的答案都是简短而甜蜜的。谢谢大家!
'为我计数'和'count.next()'都*都试图获得下一个项目 - 你为什么在同一个循环中使用它们? – jonrsharpe