加入yield 关键字函数变为generator,执行next遇到yield中断返回值
from functools import reduce def odd(): print('step1') yield 1 print('step2') yield 2 print('step3') yield 3 def fib(max): n, a, b = 0, 0, 1 while n < max: yield(b) a, b = b, a + b n = n + 1 for i in fib(6): print(i) o = odd()#一定要先赋给一个变量,负责直接拿odd() next是不会变的 for i in range(3): print(next(o))1
1
2
3
5
8
step1
1
step2
2
step3
3