# 第一种写法: gen = (i for i in range(10)) print(gen,type(gen)) #next(gen)相当于gen.__next__()方法 print(next(gen)) print(gen.__next__()) #第二种写法 def fbnq(): a,b = 0,1 for i in range(11): yield b #函数暂停,返回b,传给下面 a,b=b,a+b # print(b) a = fbnq()#创建生成器对象 # print(a) # print(next(a)) # print(next(a)) # print(next(a)) # print(next(a)) # print(next(a)) #next(a)想当于a.__next__ # print(a.__next__()) # for i in a: # print(i) for i in fbnq(): print(i)
#使用生成器完成多任务(协程) def test1(): while True: print("test1") yield None def test2(): while True: print("test2") yield None while True: next(test1()) next(test2())