asyncio异步编程(三)

1.异步迭代器

迭代器:内部实现__iter__()和__next__()方法的对象。

可迭代对象:内部实现__iter__()方法,并且可以返回迭代器的对象。

异步迭代器:实现__aiter__()和__anext__()方法的对象。

异步可迭代对象:内部实现__aiter__()方法,并且可以返回迭代器的对象。

可迭代对象或者迭代器可以被for循环。

async for遍历方式使用时,必须写在协程函数内。

2.异步上下文管理器

上下文管理器:之前做的操作,之后做的操作。

对象中定义__aenter__()和__aexit__()方法来对async with语句中的环境进行控制。该对象支持async with方式拿到该对象。必须嵌套在协程函数中使用。

用法:在操作前打开什么东西,操作后又关闭什么东西。这种场景下使用较多。

一般都是封装好的接口。

3.uvloop补充

是asyncio的事件循环的替代方案。事件循环>默认asyncio的事件循环。

fastAPI内部使用了uvicorn,所以效率高。也是因为uvicorn内部的事件循环使用的是uvloop所以效率高。

相关推荐
启观川1 小时前
数据结构与算法-第 3 章 常用算法-贪心算法
数据结构·笔记·python·算法·贪心算法
ab1237682 小时前
Spring WebSocket(STOMP)
笔记·websocket·springboot·stomp
Xudde.3 小时前
PwnLab: init 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
2402_846295773 小时前
eDNA常用的基因片段
笔记
AI视觉网奇4 小时前
3Dconnexion 按照笔记
笔记
海海不掉头发4 小时前
软件开发方法第七周笔记_CSDN博客
人工智能·笔记·学习·软件工程
Vae_Mars4 小时前
幂等性学习笔记
笔记·学习·wpf
Xudde.4 小时前
HackMe 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
先途检测认证5 小时前
塑料、硅胶、不锈钢材质,欧盟食品接触的测试项目有什么区别?
笔记·材质
跨知易知识产权5 小时前
美国发明专利和外观专利保护期限分别是多久,起算时间怎么界定?
笔记