概述
上下文管理器 对象可以使用 with 语句,with语句简化try...finally...语句
功能
使用with语句,简化资源操作的后续 清除 操作(如关闭文件对象、关闭数据库连接、关闭socket等),是 try...finally... 的替代
如下面代码:
try:
f=open('c:/users/mym/desktop/1.txt','r')
finally:
if f!=None:
f.close()
用with语句实现如下:
with open('c:/users/mym/desktop/1.txt','r') as f:
pass
with语句执行后会自动调用close()方法
强调
实现了 上下文管理器 后,都可以使用 with语句
上下文管理器的实现
有以下两种实现方式:
- 类中实现内置方法
__enter__和__exit__ - 通过contextlib模块实现,简化内置方法
__enter__和__exit__
关系图
通过__enter__和 __exit__实现
见链接:http://www.malaoshi.top/show_1EF2OnMfHCsG.html
