[PIPython] generators

Alex Martelli aleaxit
Ven 19 Nov 2004 15:16:44 CET


On Wednesday 17 March 2004 02:25 pm, Andrea Manzini wrote:
> ciao a tutti!
>
> mi sa che non ho capito bene come si usano i generators :(

Hmsi`, una piccola cosetta...:


> %%cut%%
>
> def id(n=0):
>         i = n
>         while 1:
>                 i += 1
>                 yield i
>
> for j in range(10):
>         print id().next()

Chiamando ogni volta la funzione (brutto nome, ricopre la funzione builtin 
'id', ma non e` questo il bug) riparti ogni volta da zero.

> %%cut%%
>
> non dovrebbe stamparmi i numeri da 1 a 10 ? Invece mi stampa tutti "1" ..
> Qualcuno mi puo' illuminare ? Uso python 2.3 (sia sotto linux che sotto
> win, stesso comportamento)

Fai FUORI dal loop un'unica istanza del generatore poi chiama sempre quella:

boo = id()
for j in range(10): print boo.next()


Alex




More information about the Python mailing list