Python contextlib 模块
实例
创建一个简单的上下文管理器:
import contextlib
@contextlib.contextmanager
def greet(name):
print("Hello, " + name)
try:
yield
finally:
print("Goodbye, " + name)
with greet("Emil"):
print("inside")
亲自试一试 »
定义和用法
contextlib 模块的实用程序可帮助您编写和操作上下文管理器。
使用它可以从生成器函数创建上下文管理器、管理多个上下文以及抑制异常。
成员
| 成员 | 描述 |
|---|---|
| AbstractAsyncContextManager | 异步上下文管理器的基类。 |
| AbstractContextManager | 上下文管理器的基类。 |
| aclosing() | 异步上下文管理器,在退出时调用 aclose()。 |
| asynccontextmanager() | 用于从异步生成器定义异步上下文管理器的装饰器。 |
| chdir() | 在 with 代码块内临时更改当前工作目录。 |
| closing() | 返回一个上下文管理器,该管理器会在退出时关闭对象。 |
| contextmanager() | 用于从生成器定义上下文管理器的装饰器。 |
| AsyncExitStack | ExitStack 的异步版本,用于管理多个异步上下文管理器。 |
| ExitStack | 用于动态管理多个上下文管理器的上下文管理器。 |
| nullcontext() | 不执行任何额外处理的上下文管理器。 |
| redirect_stderr() | 重定向 sys.stderr 的上下文管理器。 |
| redirect_stdin() | 重定向 sys.stdin 的上下文管理器。 |
| redirect_stdout() | 重定向 sys.stdout 的上下文管理器。 |
| suppress() | 抑制指定异常的上下文管理器。 |

