一.什么是PEP8
PEP 是 Python Enhancement Proposal 的缩写,翻译过来叫“Python 增强规范”。正如我们写文章,会有句式、标点、段落格式、开头缩进等标准的规范一样,Python 书写自然也有一套较为官方的规范。PEP 8 就是这样一种规范,它存在的意义,就是让 Python 更易阅读,换句话,增强代码可读性。
二.日常的代码规范
缩进规范
- Python 的缩进其实可以写成很多种,Tab、双空格、四空格、空格和 Tab 混合等。而 PEP 8 规范告诉我们,请选择四个空格的缩进,不要使用 Tab,更不要 Tab 和空格混着用。
- 第二个要注意的是,每行最大长度请限制在 79 个字符。这条规定另一方面也在制约着程序员,不要写迭代过深的代码,而是要思考继续把代码分解成其他函数或逻辑块,来优化自己的代码结构。
空行规范
- 全局的类和函数的上方需要空两个空行
- 类的函数之间需要空一个空行
- 函数内部也可以使用空行,和英语的段落一样,用来区分不同意群之间的代码块。但是记住最多空一行,千万不要滥用。
- 即使是使用控制语句 if / while / for,你的执行语句哪怕只有一行命令,也请另起一行,这样可以更大程度提升阅读效率。
- 至于代码的尾部,每个代码文件的最后一行为空行,并且只有这一个空行。
空格规范
- 函数的参数列表中,调用函数的参数列表中会出现逗号,请注意逗号后要跟一个空格,这是英语的使用习惯,也能让每个参数独立阅读,更清晰。
- 冒号经常被用来初始化字典,冒号后面也要跟一个空格。
- Python 中我们可以使用#进行单独注释,请记得要在#后、注释前加一个空格。
- 对于操作符,例如+,-,*,/,&,|,=,==,!=,请在两边都保留空格。不过与此对应,括号内的两端并不需要空格。
换行规范
控制每行的最大长度不超过 79 个字符,但是有时候,函数调用逻辑过长而不得不超过这个数字时,该怎么办呢?
- 第一种,通过括号来将过长的运算进行封装,此时虽然跨行,但是仍处于一个逻辑引用之下。
- 第二种,则是通过换行符来实现。
文档规范
- 所有 import 尽量放在开头
- 不要使用 import 一次导入多个模块
- 如果你=采用 from module import func 这样的语句,请确保 func 在本文件中不会出现命名冲突
注释规范
改动代码的时候,一定要注意检查周围的注释是否需要更新。
文档描述
至于 docstring 的写法,它是用三个双引号开始、三个双引号结尾。我们首先用一句话简单说明这个函数做什么,然后跟一段话来详细解释;再往后是参数列表、参数格式、返回值格式。
命名规范
- 变量名请拒绝使用 a b c d 这样毫无意义的单字符,我们应该使用能够代表其意思的变量名。
- 一般来说,变量使用小写,通过下划线串联起来,例如:data_format、input_spec、image_data_set。
- 唯一可以使用单字符的地方是迭代,比如 for i in range(n) 这种,为了精简可以使用。
- 如果是类的私有变量,请记得前面增加两个下划线。
- 对于常量,最好的做法是全部大写,并通过下划线连接,例如:WAIT_TIME、SERVER_ADDRESS、PORT_NUMBER。
- 对于函数名,同样也请使用小写的方式,通过下划线连接起来,例如:launch_nuclear_missile()、check_input_validation()。
- 对于类名,则应该首字母大写,然后合并起来,例如:class SpatialDropout2D()、class FeatureSet()。