PEP8:Python 编码规范整理

身为一名程序员,写代码固然是很有意思的。但是别忘了,代码是写给人看的,所以代码规范就显得格外重要了。

这里介绍一下 Python 的 PEP8 标准,主要整理一些个人经常用到的代码规范。

一、缩进

每级缩进都用 4 个空格。

换行时,下一行与前面对齐。

if 过长,可以拆成几行,也对齐。

有括号的,后括号另起一行与元素对齐或顶格。

注意:不能制表符 Tab 和空格 混用,可以设置一下,将所有制表符转换为空格。(建议用空格)

二、行长

每行不超过 79 字符。

注释的行长不能超过 72 字符。

太长的就用 backslash 换行处理。

换行后开始是二元运算符。

三、空行

空行不能滥用。

顶层函数以及类定义和其他部分用两个空行隔开。

类之内的方法定义之间用一个空行隔开。

对于一组相关的函数和其他之间可以有额外的空行。

可以使用空行来区分逻辑块。

四、源代码编码

py3 用 UTF-8 ,py2 用 ASCII 。

py3 已经用了 UTF-8 ,py2 已经用了 ASCII 的源代码,不应该有编码声明。

五、import

各个 import 独立成行。

import 应该在文件最上面,在模块注释和文档字符串之后,在模块变量和常量之前。

先 import 标准库。

再 import 相关的第三方库。

最后 import 本地应用和库。

单引号双引号都一样。

六、空格

各种括号中,不要加空格。

逗号,分号,冒号之前不要加空格。

冒号作为分隔符,前后都要加空格。

函数调用的函数和括号直接不要加空格。

后面跟的是索引或者切片的中括号,a[1]。

赋值语句,前后各一个空格。

七、条件测试的格式设置

在诸如 ==>=<= 等比较运算符两边各添加一个空格,例如

1
if age < 4:

比下面这个好。

1
if age<4:

八、注释

改代码一定要改注释,保证注释最新。

注释应该是完整句子。

短注释结尾的句号可以省,块注释每一个句子都应该有句号。

句子结束的句号后应该有两个句号。

用英语写作时,遵守 Strunk and White 风格。

都用英语注释。

块注释

每一行都是 # 加一个空格。

行内注释

和语句至少两个空格。

显然的东西不加注释。

九、文档字符串

公用模块、函数、类和方法,都要写文档字符串。

""" 用来结束一个多行文档字符串应该的时候应该独立成行。

如果仅仅是一行的文档字符串,”“” 可以在同一行。

十、命名传统

避免使用 ‘l’ (小写的 L ),’O’ (大写的欧),’I’ (大写的哎)。

模块名:短小,全小写。

包名:短小,全小写。

其他

一行的末尾不要加空格。

二元运算符前后一个空格。

一个表达式不同优先级运算符,添加空格区别优先级。

调用函数时,作为参数不要加空格 比如 func(a=3, b=4) 而不是 func(a = 3, b = 4)

带箭头的函数,箭头两段各空一个。

函数声明的默认参数,只有在有 notation 的时候前后有等号,否则前后没有等号。

例如:

1
2
3
4
# 这里有等号
def func(sep: AnyStr = None): ...
# 这里没有
def func(sep=None): ...

多条语句最好不要在一行,if 之后如果只有一条语句也最好不要在一行,如果有多条,则绝对不要在一行。

致谢

Python 编程 从入门到实践

pep8 要求归纳

Python 官网

0%