生成器其实就是一个函数,但是这个函数和普通的函数又是不一样的,生成器函数的特点是有yield语句,当代码执行到该句是,该函数就会停止本次执行命令,待下次执行时就又会接到上次停止时的位置继续执行该函数。
例如:
def fib(max):
a, b = 1, 1
while a < max:
yield a #generators return an iterator that returns a stream of values.
a, b = b, a+b
for n in fib(15):
print(n)
结果:
1
1
2
3
5
8
13