生成器属于特殊的迭代器,在函数中定义关键字yield,会返回一个迭代器对象并暂停,并在下一次执行 next() 方法时从当前位置继续运行
def feibonaqi(n): # 生成器函数 - 斐波那契
a, b, count = 0, 1, 0
while True:
if (count > n):
return
# 执行一次next时到这里暂停,下面代码未执行,
# 第二次执行next时,从下面的代码开始执行,for循环相当于不断调用next,直到结束
yield a
a, b = b, a + b
count += 1
f = feibonaqi(15) # f 是一个迭代器,由生成器返回生成
for i in f:
print(i,end=' ')
返回结果:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
本文介绍了Python中的生成器,通过一个斐波那契数列的例子展示了生成器如何在函数内部使用yield关键字暂停和恢复执行,以及如何通过for循环迭代生成器对象。
2274

被折叠的 条评论
为什么被折叠?



