来源:https://www.cnblogs.com/wongbingming/p/10519553.html
基本语法
with EXPR as VAR:
BLOCK
先理清几个概念:
- 上下文表达式:with open(‘test.txt’) as f:
- 上下文管理器:open(‘test.txt’)
- f 不是上下文管理器,应该是资源对象。
如何写上下文管理器?
要自己实现这样一个上下文管理,要先知道上下文管理协议。
简单点说,就是在一个类里,实现了__enter__和__exit__的方法,这个类的实例就是一个上下文管理器。
例如这个示例:
class Resource():