在第一篇中我们认识了生成器,并创建了一个简单的生成器,生成器还有另外一种形式,就是在函数中如果存在yield的语句,那么这个函数就是一个生成器,来看一个例子,我们使用生成器来描述一个斐波那契数列
def fib(n):
a, b, index = 1, 1, 0
while index < n:
yield a
a, b = b, a + b
index += 1
for i in fib(10):
print(i)
这里简单说明下,当程序在函数fib中逐句进行时,碰到yield语句回返回之后a的值,并暂停函数执行回到for循环中,当再次运行函数时会从暂停的位置依次向下运行