Was ist der Unterschied zwischen normaler Funktion und Generatorfunktion?

Ich versuche die folgende Methodik zu verstehen,

In [26]: def generator():
   ....:     print 'generator function hits'
   ....:     for i in range(3):
   ....:         yield i
   ....:         

In [27]: def normal():
   ....:     print 'normal function hits'
   ....:     return range(3)
   ....: 

In [28]: gen = generator()

In [29]: type(gen)
Out[29]: generator

In [30]: fun = normal()
normal function hits

In [31]: type(fun)
Out[31]: list

Hier meine Recherche aus dem obigen Code, 26 ist dergenerator() Funktion und 27 ist dienormal() funktion, wenn ich vergeben habegenerator() Funktion zu gen Variable Ich habe keine Drucknachricht wie gesehenGeneratorfunktion trifftAber wenn ich das vergeben habenormal() funktion zu spaß variabel, ich habe die druckmeldung gerne gesehennormale Funktion trifft. Meine Frage istwhy generator() function not hit ?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage