SuperAPI AI 工具集

python-resource-management

编程与开发

查看项目

更新于 10-16 08:47

技能介绍

用途:本技能提供 Python 资源管理的最佳实践与模式指导,适用于管理数据库连接与连接池、文件句柄与 I/O、自定义上下文管理器、带累积状态的流式响应、嵌套资源清理以及异步上下文管理器等场景。核心目标是让资源在异常发生时也能被确定性地释放。

主要能力:讲解 with 语句的自动释放机制;同步 enter/exit 与异步 aenter/aexit 协议方法;exit 的无条件执行;通过返回 True 抑制异常、返回 False 传播异常。给出四类基础模式:基于类的上下文管理器(如 DatabaseConnection)、异步上下文管理器(如 AsyncDatabasePool)、@contextmanager 与 @asynccontextmanager 装饰器(如 timed_block、database_transaction)、无条件资源释放(如 FileProcessor 清理临时文件)。

使用方式:简单场景用 @contextmanager 装饰生成器函数,在 try/finally 中 yield 资源并清理;复杂资源实现类协议;异步资源实现异步协议;动态数量资源可用 ExitStack。示例代码保留原样,如 with managed_resource() as r: r.do_work()。

适用场景:连接池、文件处理、事务管理、流式响应与指标统计。

限制:本技能仅提供指导,不提供具体代码实现;需要用户提供项目上下文与技术栈信息;不涉及非技术领域的业务决策。更多高级模式见 references/details.md。内容源自 wshobson/agents,MIT License, Copyright (c) 2024 Seth Hobson,使用与再分发须遵守该许可并保留版权声明。