python @contextmanager
@contextmanager 的作用就是我们可以把一个非自定义类改成一个上下文管理器。
这个会经常遇到,所以有必要理解一下。 上下文管理器 是有 enter__和__exit ,那么我们可以为需要改写的普通类创建一个子类,在其中添加上__enter__和__exit__方法通过继承父类的方式实现上下文管理器。但是通过contextlib模块下提供的@contextmanager装饰器,我们能够更方便的将一个普通类变成上下文管理器。(那么它有什么好处)
@contextmanager @contextmanager通过将一个函数变成生成器的方式来为普通类添加进入和退出时的处理代码,从而实现了将普通类变成一个上下文管理器。
还是拿文件来举个例子 # 结果 打开文件 查询文件 关闭文件
from contextlib import contextmanager
class File():
def
共有 0 条评论