2012/7/10 Davide Rambaldi <davide.ramba...@gmail.com> Ma non viene descritto in Dive into Python (almeno non nei primi11 capitoli > che mi sono sparato) >
Direi che quel libro e' vecchio come il cucco... > Che funzione ha? > Implementare anamorfismi con sintassi e semantica imperative... > Ad occhio mi sembra più simile ad uno strumento per fare iteration in > strutture dati (stile STL in C++) > E' uno strumento per fare iterazione (fra le varie cose). Anzi... direi per fare *generazione*. E di fatto non e' particolarmente legato al concetto di struttura dati, anzi, essenzialmente e' completamente ortogonale. Che poi funzioni bene anche con le strutture dati e' ovviamente un'altra questione. In pratica una funzione che contiene yield diventa "magica". Invece di ritornare un valore, ritorna un generatore. Quando tu cerchi di ottenere un elemento dal generatore, lui esegue il corpo della funzione fino a trovare uno yield e poi ritorna il valore yieldato. Quando gli chiedi un altro valore, lui riparte da dove era arrivato e va fino al successivo. Quando la cosa termina, lancia StopIteration. Per dire... puoi usare la cosa sia per fare un affare che ti fa visite su un grafo, sia un coso che ti genera tutti i primi (ovviamente un numero arbitrariamente grande di essi, tutti no poiche' sono infiniti). Come lo utilizzate in python? > Generatori, coroutines, lazyness, concorrenza, cornetto & cappuccino. -- . ..: -enrico-
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python