用途:在 Python 中以确定性方式管理需要清理的资源,如数据库连接与连接池、文件句柄与 I/O、网络套接字,确保即使发生异常也能可靠释放。
主要能力:with 语句自动释放资源;同步 enter/exit 与异步 aenter/aexit 协议;exit 无条件执行清理;通过返回 True 抑制异常、False 传播异常;@contextmanager 与 @asynccontextmanager 简化实现;ExitStack/AsyncExitStack 管理动态数量资源;流式响应中累积状态、高效字符串累积(列表加 join 避免 O(n²))以及首字节时间等指标统计。
使用方式:简单场景用 @contextmanager 装饰生成器,在 try/finally 中 yield 资源;复杂资源实现类协议;异步资源实现异步协议;事务用 asynccontextmanager 包裹 BEGIN/COMMIT/ROLLBACK;多资源用 ExitStack 的 enter_context 或 enter_async_context。
适用场景:连接池、文件处理、流式响应、嵌套资源清理、异步上下文管理。
限制:资料未提供安装命令、依赖版本、平台或性能基准;异常抑制需谨慎并记录行为,清理路径应测试。