Ist generator.next () in Python 3.0 sichtbar?
Ich habe einen Generator, der eine Reihe erzeugt, zum Beispiel:
def triangleNums():
'''generate series of triangle numbers'''
tn = 0
counter = 1
while(True):
tn = tn + counter
yield tn
counter = counter + 1
In Python 2.6 kann ich folgende Anrufe tätigen:
g = triangleNums() # get the generator
g.next() # get next val
Wenn ich jedoch in 3.0 dieselben zwei Codezeilen ausführe, wird der folgende Fehler angezeigt:
AttributeError: 'generator' object has no attribute 'next'
Die Loop-Iterator-Syntax funktioniert jedoch in 3.0
for n in triangleNums():
if not exitCond:
doSomething...
Ich konnte noch nichts finden, das diesen Unterschied im Verhalten für 3.0 erklärt.