核心要点
知道 PEP 8 是官方风格指南
能说出几条核心规则(缩进、命名、行宽)
了解 black/ruff/flake8 等自动化工具
简要回答
PEP 8 是 Python 官方代码风格指南,统一缩进(4 空格)、命名(snake_case)、行宽(79/88)等,提升可读性与协作效率。
标准回答
一、PEP 8
(PEP 8 -- Style Guide)是 Python 社区公认的代码风格规范,非语法强制,但团队与开源项目普遍遵循。
二、核心规则
- 缩进:4 空格,不用 Tab
- 行宽:79 字符(black 默认 88)
- 命名:函数/变量
snake_case,类CapWords,常量UPPER_CASE - 空行:类/函数间 2 行,方法间 1 行
- 导入:标准库 → 第三方 → 本地,各组空行分隔
三、重要性
- 降低代码审查摩擦
- 新人快速融入代码库
- 工具可自动检查/格式化
四、工具链
black(格式化)、ruff/flake8(lint)、isort(导入排序)。CI 中集成可强制执行。
回答思路
【定义】用一句话说清「什么是 PEP 8?为什么重要」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:只罗列名词、不会举例;混淆相似概念;忽略工程约束(成本、延迟、数据质量)。不确定时应主动说明假设。
追问
追问 1:PEP 和 RFC 有什么区别?
PEP(Python Enhancement Proposal)是 Python 官方提案流程,涵盖语言特性(PEP 484 类型提示)和流程/风格(PEP 8)。通过社区讨论和 BDFL/核心开发者决策采纳。
追问 2:何时可以违反 PEP 8?
与现有代码风格一致(Consistency)、避免破坏可读性的极端换行、与 C 扩展接口对齐等。PEP 8 自身说:「A foolish consistency is the hobgoblin of little minds」——明智地破例。
追问 3:black 和 autopep8 有何不同?
black 主张「不妥协」统一格式,配置项少;autopep8 更贴近 PEP 8 细规则、可配置多。现代项目 increasingly 采用 black + ruff。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
