Python Plus 增强
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-python-plus。
技能介绍
解决什么问题
在复杂 Python 项目里,真正拖慢进度的往往不是语法,而是这几件事:异步边界没理清,await 写在关键路径上,I/O 并发吞吐上不去;类型约束偏弱,接口契约靠口头约定,重构时缺少安全网;dataclasses、attrs、pydantic 职责混在一起,校验和序列化逻辑散落各处;测试靠手动堆参数,mock 策略不统一;性能优化凭感觉,没有 cProfile、py-spy 这类第一手测量数据。
技能如何工作
- Async/Await:从 asyncio 基础模式讲起,覆盖异步生成器、异步上下文管理器与任务组,重点是
await粒度、任务编排与错误传播。 - 类型标注:在常规注解之外引入泛型、
Protocol、类型守卫和Literal,把接口契约交给静态检查流程。 - 数据类:
attrs、pydantic、dataclasses分别对应建模、校验、轻量数据容器,按场景选择而不是混用。 - 测试策略:用
pytestfixture 分层组织测试状态,参数化覆盖组合,mock 收敛外部依赖,让断言集中在行为上。 - 性能优化:先
cProfile或py-spy定位热点,再考虑缓存与__slots__这类对象布局调整,用测量代替猜测。
快速参考
| 任务 | 工具 |
|------|------|
| 类型检查 | mypy、pyright |
| 格式化 | black、ruff |
| 测试 | pytest |
| Profiling | cProfile、py-spy |
| Linting | ruff、flake8 |
适用边界与注意点
- 异步并发解决的是 I/O 等待问题,CPU 密集任务要拆到进程或线程,不能指望事件循环。
Protocol是结构化类型约束,运行期不会强制检查;TypeGuard的收窄效果仍依赖调用路径。pydantic校验有开销,建议在系统边界做校验,内部数据流尽量贴近原生对象。__slots__只在有明确的内存或属性布局收益时使用,它会限制动态属性,可能影响第三方库兼容性。- 先测量再优化,缓存会引入一致性复杂度,没有证据前不要默认加上。
使用场景
- 构建 I/O 密集的爬虫,需要用 asyncio 任务组并发请求并控制 await 粒度。
- 设计数据模型,想在 attrs、pydantic、dataclasses 之间按场景选择。
- 编写回归测试,需要用 pytest fixture 分层组织状态并参数化覆盖组合。
- 定位性能瓶颈,先用 cProfile 或 py-spy 找热点再考虑缓存与 __slots__。
适合人员
- 写后端接口的 Python 工程师,想把 async/await 边界和类型契约理顺。
- 维护数据处理服务的开发者,需要统一 attrs、pydantic 建模与校验方式。
- 搭建自动化测试的工程师,希望用 fixture 和参数化稳定覆盖回归场景。
- 排查线上性能问题的 Python 开发者,想用 profiling 证据替代猜测优化。