[Python] generatori

Daniele Zambelli daniele.zambelli a gmail.com
Mar 3 Gen 2012 09:39:03 CET


Mi sono imbattuto in un comportamento di Python che mi ha sorpreso e
che mi ha confermato nell'idea che i generatori per me sono un po' un
mistero.

Una funzione prende come argomento una sequenza e ne stampa gli elementi:

>>> def mostra(sequenza):
	for e in sequenza:
		print(e)

		
>>> mostra((1, 3, 5, 7, 9))
1
3
5
7
9

Funziona.

Creo un generatore:
>>> cubi = (n*n*n for n in range(5))

Anche di questo posso stampare gli elementi:

>>> for n in cubi:
	print(n)

	
0
1
8
27
64

Ma se lo passo alla funzione non viene stampato niente:

>>> mostra(cubi)
>>>

A me il comportamento sembra strano e incoerente, cosa mi sfugge?

grazie per l'attenzione.

-- 

Daniele

www.fugamatematica.blogspot.com

    giusto!
    nel verso
    forse è perché non guardiamo le cose
    Quando non ci capiamo,


Maggiori informazioni sulla lista Python