2010-03-10 18 views

risposta

82

Sì, o next(gen) in 2.6+.

39

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.

1

in Python 3 non devi gen.next(), ma è comunque possibile utilizzare successivo (gen). Un po 'bizzarro se me lo chiedi ma è così.

2

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 
Problemi correlati