生成器问题求解?
def muGen():print('生成器被执行!')
yield 1
yield 2
为什么,运行结果如下
>>next(muGen())
生成器被执行!
1
>>next(muGen())
生成器被执行!
1
而不是
>>next(muGen())
生成器被执行!
1
>>next(muGen())
2
你这样调用生成器实际上每次调用的都是一个新的生成器,而不是同一个生成器,应该这样先把生成器保存到变量,再调用:
def muGen():
print('生成器被执行!')
yield 1
yield 2
scq = muGen()
print(next(scq))
print(next(scq)) 应该是这样写:
mygen = muGen()
next(mygen)
next(mygen)
next(muGen())你每次都是生成的一个新的对象,都是从头开始执行的。
页:
[1]