2010-03-10 20 views

Respuesta

82

Sí, o next(gen) en 2.6+.

39

En Python < = 2.5, use gen.next(). Esto funcionará para todas las versiones de Python 2.x, pero no Python 3.x

En Python> = 2.6, use next(gen). Esta es una función incorporada, y es más clara. También funcionará en Python 3.

Ambos terminan llamando a una función con nombre especial, next(), que puede anularse mediante subclases. En Python 3, sin embargo, esta función ha sido renombrada a __next__(), para ser consistente con otras funciones especiales.

1

En python 3 no tiene gen.next(), pero puede usar next (gen). Un poco extraño si me preguntas, pero así es como es.

2

uso (por pitón 3)

next(generator) 

Aquí está un ejemplo

def fun(x): 
    n = 0 
    while n < x: 
     yield n 
     n += 1 
z = fun(10) 
next(z) 
next(z) 

debe imprimir

0 
1 
Cuestiones relacionadas