PEP 8
Python 社区广泛遵循的代码风格指南:如何命名、缩进与排版,好让人能读懂彼此的程序。
它是什么
PEP 8 是一份关于如何书写 Python 代码的风格指南。它不改变语言能做什么,而约定「怎样写,别人(包括几个月后的自己)更容易读懂」:变量与函数怎么命名、一行写多长、缩进用几个空格、空行放在哪里。
对科学营而言,记住全部细则并不必要;先建立判断:程序既是给机器执行的,也是给人阅读的。风格一致,思想才更容易被核对与转交。
名字从哪来
PEP 是 Python Enhancement Proposal(Python 增强提案)的缩写:社区用编号文档讨论语言、标准库与流程的改进。其中第 8 号专门谈代码风格,由 Guido van Rossum、Barry Warsaw 等人起草,后经社区长期修订,成为事实上最常被引用的一份约定。
「PEP 8」因此既是文档名,也常被口语化成「按 PEP 8 来写」——意思是:遵循这份风格,而不是另起一套私人规矩。
它怎么工作
PEP 8 本身不是解释器。违反它,程序往往仍能运行;工具(如自动格式化与静态检查)可以按它的规则提示或改写文本。真正约束程序行为的,仍是语法与语义;PEP 8 约束的是可读性这一层。
与本课最相关的几条习惯包括:
- 变量与函数名多用小写字母,单词之间用下划线连接,例如
temperature_c、trial_id(常称 snake_case)。 - 类名多用每个单词首字母大写的写法,例如
SampleRecord(常称 CapWords)。 - 缩进用空格,社区默认一层四个空格;不要把 Tab 与空格混用。
- 避免毫无含义的单字母名字(数学公式里的 、 等短名除外),也避免用
l、O、I这类易与数字混淆的字符。 - 不要覆盖内置名字:把变量叫成
print、list、type,会让原本的功能暂时或局部失效。
完整文本很长,也不必一次背完。写程序时,先问:这个名字能否说明角色?这段排版是否让人一眼看见结构?
生活里在哪里
实验室共用同一份分析脚本、课程作业互评、开源项目接受补丁时,风格一致能减少「看起来像另一门方言」的摩擦。新闻机构、研究组与许多公司把 PEP 8(或在其之上的内部补充)写进贡献说明:不是为了美观竞赛,而是为了让审查者把注意力放在模型与边界上,而不是空格与大小写。
对话式编程时,也可以要求模型「按 PEP 8 命名与排版」——人仍然要验收:名字是否对应真实量,风格是否只是表面整齐。见 对话式编程。
和相近概念的差别
PEP 8 是风格指南。Python 语法是语言规则:违反语法会直接导致程序无法运行。内置函数与关键字(如 print、class)属于语言提供的名字,覆盖它们会造成困惑,PEP 8 也明确劝阻。
其他编号的 PEP 讨论的是语言特性或流程,不是同一份「怎么排版」的文档。某个团队的额外规范可以建立在 PEP 8 之上,但不宜与之无谓地冲突。
常见误会
误会 1:不符合 PEP 8,程序就不能运行。
风格与语法是两层。难看但合法的程序仍可执行;可读性差的代价出现在阅读、协作与排错时。
误会 2:PEP 8 要求每个名字都又长又复杂。
它要求的是清楚,不是越长越好。循环里的 i、坐标里的 x 在上下文明确时仍然常见;含糊的 data1、tmp2 才是问题。
误会 3:背下 PEP 8 就等于学会了 Python。
风格服务于表达。理解赋值、类型与边界,仍然比记住空行条数更重要。
想知道更多
- 文档:PEP 8 – Style Guide for Python Code(官方原文)
- 书:埃里克·马瑟斯《Python编程:从入门到实践(第3版)》
- 书:艾伦·唐尼《像计算机科学家一样思考Python(第2版)》
- 书:布鲁克希尔《计算机科学概论》
未登录时不会保存学习进度