许多小伙伴们在使用具有代码分析的代码编辑器写 python 代码的时候,有时候会遇到这种情况:明明代码没有错误,也可以进行代码执行,为什么代码下面还画着波浪线?其实是因为你的代码不符合 PEP8 规范。虽然不符合该规范代码也可以正常运行(大多数情况可以正常运行),但乱七八糟的代码会是阅读代码的人难以理解代码,所以为了小伙伴的同事关系融洽(不宜读的代码会增加别人的负担),学习 PEP8 规范很有必要。
首先介绍一下 PEP8,它是 Guido(python 之父)写的 python 样式指南文章改编而来(加入 Barry 的部分样式指南)的编码约定。详细的 PEP8 文档可以在官网找到。
接下来,小编挑出一些平常比较需要注意的规范进行介绍:
缩进
每一级缩进使用4个空格(可以在代码编辑 tab 制表符一次缩进四个空格)。
续行
续行应该与其包裹元素对齐。
可以使用圆括号、方括号和花括号内的隐式行连接来垂直对齐,也可以使用挂行缩进对齐。
注:在使用挂行缩进时,应该考虑到第一行不应该有参数,以及使用缩进以区分自己是续行。
行的最大长度
所有行限制的最大字符数为79。超出最大字符数可以采用续行。
没有结构化限制的大块文本(比如文档字符或者注释),每行的最大字符数限制在72。
空行
顶层函数和类的定义,前后使用两个空行隔开。
类里的方法定义只需要用一个空行隔开。
导入
导入通常要分开进行而且要位于文件的顶部。
注释
块注释使用一个 # 和一个空格加上注释内容构成。块注释最好缩进到与代码相同的级别(尽管不缩进也不会被代码编辑器发现)。
行内注释则是在块注释的要求上在 # 之前空两个空格。
注;代码编辑器不会关注你的注释的质量,但这并不代表你可以随意注释,垃圾的注释不如没有注释。
命名约定
在命名的时候应该避免一些不好区分的字母作为单字符变量名(比如小写的 L 和大写的 i,当然,这点也不会被代码编辑器发现)。
类名一般使用首字母大写,函数名应该小写,想提高可读性可以用下划线分隔
不要加分号
尽管在 python2.x 版本中可以使用分号来作为语句的结束标识,但实际上 python 还是通过换行来识别语句结束。所以分号不需要存在,也不要在一行里写入多个 python 语句(因为使用分号可以在一行内写入多个语句,但这是违背 PEP8 规范的)。
空格
按照标准的排版规范来使用标点两边的空格,括号内不要有空格。不要在逗号,分号,冒号前加空格,但应该在他们后面加空格(行尾除外)。
参数列表, 索引或切片的左括号前不应加空格。 在二元操作符两边都加上一个空格, 比如赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not)和布尔(and, or, not)。算术操作符两边的空格应该保持一致。当(=)用于指示关键字参数或默认参数值时, 不要在其两侧使用空格。
总结
PEP8 代码规范虽然很多很复杂,但有些规则你多使用自然就能成为习惯。当编写的代码符合规范时,代码的可阅读性就大大提高了。另外,使用一款好的代码编辑器可以帮助你发现不符合 PEP8 规范的地方,并给出相应的提示(比如 pycharm)。
更多优质 python 课程,尽在Python课程列表。