python yield 生成器-用法记录

tech2022-08-14  155

####交替执行task2和task1 def task1(n): for i in range(n): print("listening {}".format(i)) yield None def task2(n): for i in range(n): print("woking {}".format(i)) yield None g1=task1(5) g2=task2(5) while True: try: next(g1) next(g2) except Exception: break # 看见 yield这个函数就是个生成器 def fun(): n=0 while True: n+=1 yield n g3=fun() print(g3)#<generator object fun at 0x0000024562CC8248> print(g3.__next__()) print(g3.__next__()) print(g3.__next__()) def gen(): i=0 while i<5: temp=yield i print(temp) i+=1 return "no data" g=gen() g.send(None) g.send("zzt") g.send("zzt") g.send("zzt") g.send("zzt") next(g) next(g) next(g) next(g) next(g)
最新回复(0)