Antworten:
Verwenden Sie in Python <= 2.5 gen.next()
. Dies funktioniert für alle Python 2.x-Versionen, jedoch nicht für Python 3.x.
Verwenden Sie in Python> = 2.6 next(gen)
. Dies ist eine eingebaute Funktion und klarer. Es wird auch in Python 3 funktionieren.
Beide rufen am Ende eine speziell benannte Funktion auf next()
, die durch Unterklassen überschrieben werden kann. In Python 3 wurde diese Funktion jedoch umbenannt __next__()
, um mit anderen Sonderfunktionen übereinzustimmen.
Dies ist der richtige Weg.
Sie können auch verwenden next(gen)
.
Um den Wert zu erhalten, der einem Generatorobjekt in Python 3 und höher zugeordnet ist, verwenden Sie next(<your generator object>)
. Nachfolgende Aufrufe von next () erzeugen aufeinanderfolgende Objektwerte in der Warteschlange.
In Python 3 haben Sie nicht gen.next()
, aber Sie können immer noch verwenden next(gen)
. Ein bisschen bizarr, wenn du mich fragst, aber so ist es.
W1 = params.next()
aber erhalten Sie einen FehlerAttributeError: 'generator' object has no attribute 'next'