Python的with关键字
本文最后更新于:2024年8月11日 晚上
经过一些学习,对于
1 |
|
早已见怪不怪,但是在异步的进一步学习中又遇到了类似于with async ...
的方法,因此with
并不是专门为读取文本设计的。
他还有一些有趣的地方
with
是py实现上下文管理的一种方式,它在一定程度上是try -- finally
的缩写版本,出现异常时能够正确退出,但是本身不具备异常捕获功能。同时他会把后面函数(如open()
)的返回值赋值给as *
。
我们可以自己定义一个支持with
方法的类,只要这个类实现了__enter()__
和__exit()__
方法即可,正常实行时会先执行__enter()__
进行初始化,内部支持若干其他方法,发生异常时则会调用__exit()__
方法来安全退出。
1 |
|
上面是构造出的一个粗糙的示例,在__enter__()
中将返回self
给ws
,而后ws
即可调用类中的其他方法。
当然,如果你有一个实现了异步读取文件的类,可以这么写:
1 |
|
这反应了异步跟with
的一些关系
Python的with关键字
https://qlozin.top/2023/01/10/关于with/