Dalsi pekny clanek.
Stalo by ale asi za to vysvetlit na prikladu k cemu jsou vlastne generatory dobre. Jejich hlavni vyznam vidim v tom, ze umoznuji do pythonu zavest "lenost" (laziness) znamou z funkcionalniho programovani. Napr.
for i in range(10000):
____if i == 5:
________break
nejprve vytvori list o 10000 polozkach a potom pri iteraci precte jen 6. Oproti tomu:
for i in xrange(10000):
____if i == 5:
________break
pri pouziti xrange, coz je vlastne range prepsany jako generator, se vygeneruje pouze tech 6 hodnot vzdycky az kdyz jsou treba (coz v tomto pripade usetri spoustu pameti i casu).
Lze takhle vytvaret napr. nekonecne generatory, pokud z nich pak pouzijete jen urcitou cast (treba nejaky iterativni vypocet, ktery stale konverguje k presne hodnote a jen na vas je jakou chcete presnost a kolik polozek si z nej vezmete).