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 @   admin-xiaoli  阅读(10)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示