PEP 8编码规范核心要点及Black自动格式化
请列出PEP 8编码规范中最重要的10条规则,并说明Black代码格式化工具如何以不可逆的方式自动遵守PEP 8。
回答
我是大山
PEP 8十大核心规则:
- 缩进:4个空格,禁止Tab
- 行长度:最大79字符(文档字符串/注释72字符)
- 空行:顶层函数/类前后各2空行;类内方法前后1空行
- 导入:每行一个import,顺序:标准库→第三方→本地,组间空行
- 空格:逗号后空格、二元运算符两侧空格(
=在默认参数时不空格) - 命名约定:类名CamelCase、函数/变量snake_case、常量全大写、私有
_前缀 - 表达式:避免歧义的
== None改为is None;not a is None改为a is not None - 异常:捕获异常指定具体类型;
try代码量尽量少 - 比较:与
True/False/None比较用is,不用== - 文档:所有公共模块/函数/类写docstring
Black特点:
- 不可逆格式化:只有一套风格,无选项(除行长度),消除团队争论
- 默认88字符行长度(PEP 8 79的现代变体)
- 自动调整表达式换行、括号对齐、空格插入
- 对字符串引号统一处理(双引号)
# fmt: off/# fmt: on可禁用特定区域- CI中
black --check .检查是否已格式化