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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage