Loading

python上下文管理器

  • 上下文管理器是Python中的一种协议,它保证了每次代码执行的一致性
  • 一旦进入上下文管理器,就一定会按照规定的步骤退出
  • 如果合理的设计了退出上下文管理器的步骤,就能够很好的处理异常。
  • 上下文管理器被最多用到的场景是资源清理操作。
  • 实现上下文管理器,只要在类定义时,实现__enter__()方法和__exit__()方法即可
class File:
    def __init__(self,filename,mode):
        self._filename = filename
        self._mode = mode

    def __enter__(self):
        print("__enter()__")
        self._f = open(self._filename,self._mode)
        return self._f

    def __exit__(self,*args):
        print("__exit__")
        self._f.close()

with File("./test/test.txt","r") as f:
    print(f.read())

执行顺序:

  1. __init__
  2. __enter__
  3. _——enter__的返回结果赋值给f
  4. 执行with语句块
  5. __exit__
__enter()__
123456
__exit__
posted @ 2021-03-25 20:21  克豪  阅读(102)  评论(0)    收藏  举报