python async/await异步编程设计常用插件
文章目录
- 系列文章目录
- 前言
- 一、pandas是什么?
- 二、使用步骤
- 1.引入库
- 2.读入数据
- 总结
前言
异步编程结构,一般切割三层:
外层:事件循环处理器
中介层: 构造异步 等,效果
内层:类似于 “子生成器”层。 篇写具体的任务动作。
一、初步
1) 运行协程函数
async 声明的函数为协程函数:
async def foo(): ... return 1foo 函数的引用,“实例化” () 时,得到一个协程对象。而常规函数这样子,是执行函数的功能。
coro = foo() print("没有 await:", coro) 输出: 没有 await: <coroutine object foo at 0x...> --->所以,想执行协程函数,前面必须加个 await:
result = await foo() print("有 await:", result) 输出: 有 await: 12) await 的限制
await 这个关键字的使用,只能在 async 声明的协程函数内使用。
由于这个限制,想执行整个事件体,必须在外层。最外层,就是事件循环处理器来处理。
“最外层”概念 —— 同 yield from 委托。yield from == await。
二、事件循环处理器
1) 使用 asyncio.run(foo()) 来运行整个事件体。
它会创建一个事件循环,运行 foo() 协程,直到它执行完毕。
from XX import main import asyncio asyncio.run(main()) # 直接运行2)方法二
loop = asyncio.get_event_loop() # 直接获取
loop.run_until_complete(main())
三、子层
执行具体任务
