В чем разница между нормальной функцией и функцией генератора?

Я пытаюсь понять методологию ниже,

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

Вот мое исследование из приведенного выше кода, 26 являетсяgenerator() функция и 27 являетсяnormal() функция, когда я назначилgenerator() Функция переменной Gen Я не видел ни одного печатного сообщения, какфункция генератора ударов, Но если бы я назначилnormal() Функция Fun Fun переменная, я видел печатное сообщение, какнормальные хиты функции, Мой вопросwhy generator() function not hit ?

Ответы на вопрос(2)

Ваш ответ на вопрос