metodo iteradores generadores generadoras funciones español python generator

iteradores - python generadores



¿Cómo obtener un valor de un generador en Python? (5)

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.

Ambas terminan llamando a una función especialmente nombrada, 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.

Pregunta muy básica: ¿cómo obtener un valor de un generador en Python?

Hasta ahora he encontrado que puedo obtener uno escribiendo gen.next() . Solo quiero asegurarme de que este sea el camino correcto.


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



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


Uso (para python 3)

next(generator)

Aquí hay un ejemplo

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

debería imprimir

0 1