Tengo una función que produce resultados a medida que los descarga. A los efectos de esta pregunta, digamos que producen una picadura de una vez por segundo, pero quiero una función de conveniencia para envolver mi generador:¿Cómo obtengo los resultados de una función de generador de Python anidada?
import time
def GeneratorFunction(max_val):
for i in range(0,5):
time.sleep(1)
yield "String %d"%i
def SmallGenerator():
yield GeneratorFunction(3)
for s in SmallGenerator():
print s
... ¿por qué no que acaba de imprimir las 5 cuerdas estoy esperando? En su lugar aparece para devolver el generador de funcio:
<generator object GeneratorFunction at 0x020649B8>
¿Cómo puedo conseguir que esto dió las cuerdas como una función de generador normal sería?
FYI, en Python 3.3, 'rendimiento a partir de GeneratorFunction (3)' trabajará .. – DSM
@DSM: Gracias . Todavía no ha hecho la transición a 3+ aún ... –