Python 基础知识:什么是 Python 中的上下文管理器(Context Manager)? 📅 2026/8/27 21:11:14 处于某种情境之中时, 有一种被称作上下文管理器的对象, 它专门用来对资源予以管理, 它明确规定了在正要进入以及刚刚退出特定代码板块之际务必要执行的相关操作。该种上下文管理器常常被运用在保障资源能够得以正确地进行分配以及释放的进程当中, 就好比开启以及关闭文件, 建立以及关闭数据库连接这类情况一样。其主要目的在于, 上下文管理器借助实现特定方法,从而让该对象得以与with语句一同使用。with语句能够协助我们, 更明晰地管理代码块进入以及退出时的操作。上下文管理器有两种常见的实现方式类实现使用 和 方法class MyContextManager: def __enter__(self): # 进入代码块时的操作比如资源分配 return self # 可以返回一个对象该对象会被赋值给 as 后面的变量 def __exit__(self, exc_type, exc_value, traceback): # 退出代码块时的操作比如资源释放 pass # 使用上下文管理器 with MyContextManager() as cm: # 在这个代码块中执行一些操作 pass使用 模块中的 装饰器from contextlib import contextmanager contextmanager def my_context_manager(): # 进入代码块时的操作比如资源分配 yield # yield 之前的代码相当于 __enter__yield 之后的代码相当于 __exit__ # 使用上下文管理器 with my_context_manager(): # 在这个代码块中执行一些操作 pass不管是采用何种方式, 上下文管理器的那种方法所返回的对象能够借助 as 关键字被赋予给一个变量, 以供 with 语句在内部使用。在代码块执行完结束之际, 不管是正常地结束还是出现异常, 那种方法都会被调用, 用以执行一些清理方面的操作。倘若要说起使用上下文管理器的好处, 那么在于它能够确保资源得到正确的分配, 以及确保资源得到正确的释放事宜, 有助于提高代码的可读性, 与此同时还可以使得代码变得更加健壮。