2021-08-26 Python之生成器

#生成器的多任务
#进程> 线程> 协程

 1 def task1(n):
 2     for i in range(n):
 3         print('正在搬第{}块砖。'.format(i))
 4         yield None
 5 
 6 def task2(n):
 7     for i in range(n):
 8         print('正在听第{}首歌。'.format(i))
 9         yield None
10 
11 g1=task1(5)
12 g2=task2(5)
13 
14 while True:
15     try:
16         g1.__next__()
17         g2.__next__()
18     except:
19         break


'''
总结:
生成器的定义方式:

1.通过列表方式推导
g=(x*2 for x in range(6))

2.函数+yield
def func():
...
yield
g=func()

产生元素:
1.next(generator) : 每次调用都会产生一个新的元素

2.生成器自己的方法:
g.__next__()
g.send(value)

应用:协程

'''

posted @ 2021-08-26 14:32  admin-xiaoli  阅读(9)  评论(0编辑  收藏  举报