Это не имеет ничего отношения к бутылке, оно касается исключительно функции генератора.
Когда вы вызываете yielditem()
, вы получаете, как говорит Python, генератор объекта yielditem
.Он магическим образом не начинает перебирать его.
Если вы хотите перебрать объект-генератор, вы должны сделать это явно, с чем-то вроде print(next(yielditem()))
.
Как вы хотите используйте , этот генератор - другая история: если вы хотите получить доступ к одному и тому же объекту генератора во время нескольких вызовов функций, вы можете поместить его вне функции с именем:
generator_object = yielditem()
def print_it(): # this is like your `index` function
print "Current value: {}".format(next(generator_object))
for x in range(10): # this is like a client reloading the page
print_it()