Sehr grundlegende Frage - wie erhält man einen Wert von einem Generator in Python?
Bisher habe ich festgestellt, dass ich eine durch Schreiben bekommen kann gen.next()
. Ich möchte nur sicherstellen, dass dies der richtige Weg ist.
Ja oder next(gen)
in 2.6+.
W1 = params.next()
aber erhalten Sie einen FehlerAttributeError: 'generator' object has no attribute 'next'
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.quelle
Verwenden Sie (für Python 3)
Hier ist ein Beispiel
sollte drucken
quelle
Dies ist der richtige Weg.
Sie können auch verwenden
next(gen)
.http://docs.python.org/library/functions.html#next
quelle
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.quelle
In Python 3 haben Sie nicht
gen.next()
, aber Sie können immer noch verwendennext(gen)
. Ein bisschen bizarr, wenn du mich fragst, aber so ist es.quelle