我有一個生成一系列的發電機,例如:是否在python 3.0中可見generator.next()?
def triangleNums():
'''generate series of triangle numbers'''
tn = 0
counter = 1
while(True):
tn = tn + counter
yield tn
counter = counter + 1
在Python 2.6我能夠做出以下電話:在3.0
g = triangleNums() # get the generator
g.next() # get next val
但是如果我執行相同的兩條線的代碼,我發現了以下錯誤:
AttributeError: 'generator' object has no attribute 'next'
但是,將循環迭代語法確實在3.0
工作10for n in triangleNums():
if not exitCond:
doSomething...
我還沒有找到任何解釋這種3.0行爲差異的東西。
@MaikuMori我固定的聯繫(等待同伴修訂) (該網站http://diveintopython3.org似乎已關閉,鏡像網站http://diveintopython3.ep.io仍然存在) – gecco 2012-01-05 20:59:34
再次修復該鏈接。 http://python3porting.com/differences.html更完整,順便說一句。 – 2013-07-27 03:53:41
鏈接仍然被破壞... – Klik 2017-10-21 01:16:35