快速实现上下文管理器

我们都知道,在类中实现__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("执行主体")

posted on 2022-09-22 11:15  默玖  阅读(17)  评论(0编辑  收藏  举报

导航