- 3.3.9. with 语句上下文管理器
3.3.9. with 语句上下文管理器
上下文管理器 是一个对象,它定义了在执行 with
语句时要建立的运行时上下文。 上下文管理器处理进入和退出所需运行时上下文以执行代码块。 通常使用 with
语句(在 with 语句 中描述),但是也可以通过直接调用它们的方法来使用。
上下文管理器的典型用法包括保存和恢复各种全局状态,锁定和解锁资源,关闭打开的文件等等。
要了解上下文管理器的更多信息,请参阅 上下文管理器类型。
object.
enter
(self)- 进入与此对象相关的运行时上下文。
with
语句将会绑定这个方法的返回值到as
子句中指定的目标,如果有的话。
object.
exit
(self, exc_type, exc_value, traceback)- 退出关联到此对象的运行时上下文。 各个参数描述了导致上下文退出的异常。 如果上下文是无异常地退出的,三个参数都将为
None
。
如果提供了异常,并且希望方法屏蔽此异常(即避免其被传播),则应当返回真值。 否则的话,异常将在退出此方法时按正常流程处理。
请注意 exit()
方法不应该重新引发被传入的异常,这是调用者的责任。
参见
- PEP 343 - "with" 语句
- Python
with
语句的规范描述、背景和示例。