1.在看廖雪峰python教程时,发现生成器只有在赋值后,才能打印完整结果
2.代码如下
def odd():
print('step 1')
yield 1
print('step 2')
yield(3)
print('step 3')
yield(5)
g=odd()
for i in range (3):
print(next(g))
3.若把print语句换成如下代码
def odd():
print('step 1')
yield 1
print('step 2')
yield(3)
print('step 3')
yield(5)
for i in range (3):
print(next(odd()))
只能打印step1
4.我理解的是odd()和g应该是相同的,为什么打印结果会不同呢?
调用生成器函数会返回generator对象,每次调用odd函数会重新产生新的对象,所以每次next只会打印第一个