domanda molto semplice - come ottenere un valore da un generatore in Python?Come ottenere un valore da un generatore in Python?
Finora ho trovato che posso ottenere uno scrivendo gen.next()
. Voglio solo assicurarmi che questo sia il modo giusto?
domanda molto semplice - come ottenere un valore da un generatore in Python?Come ottenere un valore da un generatore in Python?
Finora ho trovato che posso ottenere uno scrivendo gen.next()
. Voglio solo assicurarmi che questo sia il modo giusto?
Sì, o next(gen)
in 2.6+.
Questo è il modo corretto per farlo.
È anche possibile utilizzare next(gen)
.
In Python < = 2,5, utilizzare gen.next()
. Ciò funzionerà con tutte le versioni di Python 2.x, ma non con Python 3.x
In Python> = 2.6, utilizzare next(gen)
. Questa è una funzione integrata ed è più chiara. Funzionerà anche in Python 3.
Entrambe finiscono per chiamare una funzione appositamente denominata, next()
, che può essere sovrascritta dalla sottoclasse. In Python 3, tuttavia, questa funzione è stata rinominata in __next__()
, per essere coerenti con altre funzioni speciali.
in Python 3 non devi gen.next(), ma è comunque possibile utilizzare successivo (gen). Un po 'bizzarro se me lo chiedi ma è così.
Usa (per Python 3)
next(generator)
Ecco un esempio
def fun(x):
n = 0
while n < x:
yield n
n += 1
z = fun(10)
next(z)
next(z)
dovrebbe stampare
0
1