快速实现上下文管理器
我们都知道,在类中实现__enter__、__exit__方法即可成为上下文管理器,这里主要浅谈一下上下文管理器的另外一种快速实现方式
上下文管理器:可以理解为装饰器,在主体程序的执行前后执行一些必要的操作,使用yield分离
1 import contextlib 2 3 4 @contextlib.contextmanager 5 def execute(): 6 print("执行:__enter__") 7 yield 8 print("执行:__exit__") 9 10 11 # yield的返回值被放置在由as限定的变量中 12 with execute(): 13 print("执行主体")