用途
Python Best Practices 技能用于在编写和维护 Python 代码时提供专家级指导,帮助产出符合行业最佳实践与标准的专业、可维护代码。根据资料,适用场景包括:编写新的 Python 函数、类或模块;重构既有 Python 代码以提升质量;搭建结构规范的新 Python 项目;实现单元测试或采用 TDD;添加类型提示以提升代码清晰度;配置 lint、格式化与类型检查工具;管理依赖与虚拟环境;提升代码可读性与可维护性;遵循 PEP 8 风格指南。
主要能力
该技能围绕若干核心原则展开:
-
PEP 8 风格指南:缩进使用 4 个空格(不用制表符);行长限制为 79 字符(代码 99,文档字符串/注释 72);顶层函数/类之间空 2 行,类内空 1 行;导入每行一个,顺序为标准库、第三方、本地,各组之间空行分隔,避免通配符导入;命名约定为函数/变量/方法用 snake_case、类用 PascalCase、常量用 UPPER_CASE、内部使用前导下划线 _private;空白方面不留行尾空白、运算符两侧各一个空格、函数括号前不加空格。
-
可读性与清晰度:编写自文档化代码,使用描述性命名;使用文档字符串(含 Args、Returns、Raises、Example 等段落);偏好显式而非隐式行为。
-
模块化与可复用性(DRY 原则):遵循单一职责原则,将“处理并保存报告”这类函数拆分为 clean_data、calculate_statistics、format_report、save_report 等独立函数;避免重复逻辑,使用可复用常量与函数;用类组织相关功能(如 DataValidator)。
-
测试与 TDD:编写可测试代码,通过依赖注入避免依赖外部状态;给出基于 pytest 的单元测试结构,包括基本断言、异常断言(pytest.raises)、参数化测试(pytest.mark.parametrize);TDD 流程为先写测试、再实现最小代码通过、最后在测试保持通过的前提下重构。
-
错误处理:使用具体异常而非通用 Exception,可自定义异常类(如 DivisionByZeroError 继承 ValueError);避免裸 except,按 FileNotFoundError、PermissionError、ValueError 等分别处理并记录日志;使用上下文管理器管理资源(如通过 contextlib.contextmanager 实现数据库连接)。
-
虚拟环境与依赖管理:介绍使用 uv 创建虚拟环境、激活、安装依赖、指定版本范围、安装开发依赖、生成与安装 requirements.txt;给出 pyproject.toml 的项目结构示例,包含 project、optional-dependencies、build-system 以及 black、ruff、mypy、pytest 的工具配置段。
-
现代 Python 工具链:Ruff(快速 linter 与格式化器,ruff check、ruff check --fix、ruff format 及 pyproject.toml 配置)、Black(代码格式化器,black、black --check 及配置)、Mypy(静态类型检查器,mypy 及 strict 等配置);并给出类型提示示例,包括基本类型、集合类型、Optional、联合类型(Python 3.10+ 的 str | int)、Callable、TypeVar 泛型、Protocol 结构化子类型。
使用方式
资料给出了推荐工作流。编写新代码时:从类型提示和文档字符串开始;先写测试(TDD)定义预期行为;实现最小代码使测试通过;在测试保持通过的前提下重构;运行 linter(ruff check);格式化代码(ruff format 或 black);检查类型(mypy);运行测试(pytest)。重构既有代码时:若不存在测试则先补测试;运行现有测试建立基线;增量重构(小步修改);每次修改后运行测试;提升类型覆盖率;应用 linter 修复;更新文档。
常见模式
资料还包含配置管理(使用 dataclasses 与 tomllib 从 TOML 加载配置)和日志(logging 与 setup_logging)等常见模式示例。
限制
资料未提供该技能的安装方式、调用命令、收费或价格信息、支持的平台、性能或效果数据,这些内容暂未提供。