So che mi manca qualcosa di semplice, ma non lo vedo.Generatore Espressione vs rendimento: perché non funziona 'next()'?
Se ho un generatore di espressione come questa:
>>> serializer=(sn for sn in xrange(0,sys.maxint))
io in grado di generare, con facilità, interi singoli come questo:
>>> serializer.next()
0
>>> serializer.next()
1
>>> serializer.next()
2
Se scrivo un generatore come questo:
>>> def ser():
... for sn in xrange(0,100000):
... yield sn
Non è disponibile:
>>> ser().next()
0
>>> ser().next()
0
>>> ser().next()
0
??? Cosa mi manca ???
Thx! Sapevo che doveva essere semplice ... – dawg
nessun problema. è sicuramente non ovvio, dal momento che l'altro tipo di funzioni principali che fanno questo (decoratori) hanno un esplicito 'return wrapper' in loro, che immagino sia implicito/magicamente creato dall'istruzione' yield': P –