PYTHON NOTES · 11
理解生成器表达式、函数生成器和协程的使用方式与特点。
- 生成器
- 协程
Python 生成器与协程
理解生成器表达式、函数生成器和协程的使用方式与特点。
4.生成器
1.生成器表达式
t1=(x for x in range 5)
2.函数生成器
#yeild
def fn():
print("函数开始了")
yield
print("函数继续执行了")
#函数生成器返回的结果是yield
#一般函数生成器没有return
#没有下一个yield也会报错
#函数执行到yield就会暂停,取下一个yield时会再继续运行
3.生成器表达式的输出方式
#next(t1)
#for i in t1:
#print(t1)
#一次只输出一个结果
#所以结果输出完再继续调用就会报错
5.协程
1.协程是什么
协程可以在单线程中并发
2.协程的实现
协程是基于生成器实现的
#await不能单独使用 需要搭配 async
#流程
#1.创建函数 ——await和async搭配使用
#2.创建入口函数
#3.定义协程
#4.运行协程
#调包
import asyncio
#定义异步函数(async-wait搭配使用)
#调用函数返回的是协程对象
async def eat():
print("开始吃")
await asyncio.sleep(2)
print("吃饱了")
async def drink():
print("开始喝")
await asyncio.sleep(2)
print("喝饱了")
#创建入口函数
async def main():
task1=asyncio.create_task(eat())
task2=asyncio.create_task(drink())
await task1
await task2
#运行协程
asyncio.run(main())
3.协程的特点
协程可以使用await主动让出控制权,从而提高程序运行效率