我玩弄發電機,以便更好地瞭解他們的工作,但我很困惑與下面這段代碼的結果: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