Ich habe einen Generator, der eine Reihe, zum Beispiel erzeugt:Ist generator.next() in Python 3.0 sichtbar?
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 mir die folgenden Anrufe vor:
g = triangleNums() # get the generator
g.next() # get next val
jedoch in 3.0, wenn ich die gleichen zwei Zeilen ausführen ich bin den folgenden Fehler bekommen Code:
AttributeError: 'generator' object has no attribute 'next'
aber, funktioniert die Schleife Iterator Syntax Arbeit in 3.0
Ich konnte noch nichts finden, das diesen Unterschied im Verhalten für 3.0 erklärt.
eine Idee, warum Python 2 die Dunder Convention für diese Methoden in erster Linie vermieden? –
Das ist wahrscheinlich nur ein Versehen. –