函数写生成器
生成器的创建方式
1.列表生成式。(比较简单的生成器创建,如 a = (i for i in range(10))
2.函数生成式。
return 与 yield比较
return: 返回并结束函数。
yield:返回并暂时冻结函数,等值返回以后在继续执行(需要用next唤醒,唤醒后继续执行,指导下一个yield)。
使用yield好处(如果一个函数处理需要很长时间,需要等待很久。用yield返回指定数量的元素,先进行处理,处理完再返回继续处理)
def fib(max): n,a,b = 0,0,1 while n < max: yield b a,b = b,a+b n += 1 #return 0 #不用写return 0,默认返回值为None。 f = fib(15) #生成器对象 print(f) for i in f: print(i)
print(next(f)) print(f.__next__()) #两个等同
越是困难的事越要立即去做,这样收益才会最大!!!