SuperAPI AI 工具集

python-patterns

编程与开发

查看项目

更新于 10-15 08:39

技能介绍

用途

python-patterns 是一份 Python 开发模式与最佳实践参考,目标是帮助开发者编写健壮、高效、可维护的 Python 应用。它强调 Pythonic 惯用法、PEP 8 标准与类型提示,适合在以下场景使用:编写新的 Python 代码、审查 Python 代码、重构既有 Python 代码、设计 Python 包或模块。

核心原则

  • 可读性优先:代码应当直观易懂,避免“聪明但令人困惑”的写法。
  • 显式优于隐式:避免魔法行为,明确说明代码在做什么,警惕隐藏的副作用。
  • EAFP(Easier to Ask Forgiveness Than Permission):优先使用异常处理,而非事先检查条件(LBYL)。

主要能力

类型提示

介绍基础类型注解,以及 Python 3.9+ 的内置泛型写法(如 list[str]、dict[str, int])与 3.8 及更早版本的 typing 模块写法;还包含类型别名、TypeVar 泛型,以及基于 Protocol 的鸭子类型。

错误处理

强调捕获具体异常而非裸 except,使用异常链(raise ... from e)保留回溯信息,并建议建立自定义异常层级(如 AppError、ValidationError、NotFoundError)。

上下文管理器

推荐使用 with 进行资源管理,并给出基于 contextlib.contextmanager 的自定义上下文管理器,以及实现 enter/exit 的类式上下文管理器(如数据库事务)。

推导式与生成器

说明简单转换适合列表推导式,复杂逻辑应改用生成器函数;生成器表达式用于惰性求值,生成器函数适合逐行读取大文件。

数据类与命名元组

介绍 dataclass 自动生成 init、repr、eq,以及通过 post_init 做校验;NamedTuple 用于不可变数据结构。

装饰器

包含函数装饰器、带参数的装饰器、基于类的装饰器,并强调使用 functools.wraps 保留元信息。

并发模式

区分 I/O 密集型任务使用线程(ThreadPoolExecutor)、CPU 密集型任务使用多进程(ProcessPoolExecutor),以及使用 async/await 处理并发 I/O。

包组织

给出标准项目布局(src 目录、tests、pyproject.toml 等)、导入顺序约定(标准库、第三方、本地),以及 init.py 中的包级导出与 all。

内存与性能

介绍 slots 降低内存占用、用生成器处理大数据、避免循环内字符串拼接(改用 join 或 StringIO)。

工具链集成

列出常用命令:black、isort 格式化;ruff、pylint 检查;mypy 类型检查;pytest 测试与覆盖率;bandit 安全扫描;pip-audit、safety 依赖检查。并给出 pyproject.toml 中 black、ruff、mypy、pytest 的配置示例。

反模式

指出可变默认参数、用 type() 判断类型、用 == 与 None 比较、from module import *、裸 except 等常见问题,并给出正确写法。

使用方式

资料以代码示例与对照(Good/Bad)形式呈现各项模式,可直接作为编码规范参考,或用于代码审查与重构时的检查清单。文档末尾附有 Python 惯用法速查表(EAFP、上下文管理器、列表推导式、生成器、类型提示、数据类、slots、f-strings、pathlib.Path、enumerate)。

适用场景

适用于日常 Python 开发、代码评审、重构、包与模块设计,以及团队统一编码风格。

限制

资料未提供安装命令、具体版本要求之外的平台信息、收费或价格信息,也未说明其作为工具的具体运行方式;相关内容暂未提供。