PEP是Python Enhancement Proposal的缩写-python增强提案
1.使用空格表示缩进不要使用制表符
2.每行的字符数不要超过79个字符,如果表达式因太长而占据了多行,除了首行之外的其余各行都应该在正常的缩进宽度上再加上4个空格。
3.函数和类的定义,代码前后都要用两个空行进行分隔
4.在同一个类中,各个方法之间应该用一个空行进行分个
5.二元运算符的左右两侧应该保留一个空格,而且只要一个空格就好。
标识符命名
1.变量、函数和属性应该使用小写字母来拼写,如果有多个单词就使用下划线进行连接。
2.类中受保护的实例属性,应该以一个下划线开头。
3.类中私有的实例属性,应该以两个下划线开头。
4.类和异常的命名,应该每个单词首字母大写。
5.模块级别的常量,应该采用全大写字母,如果有多个单词就用下划线进行连接。
- 类的实例方法,应该把第一个参数命名为
self
以表示对象自身。 - 类的类方法,应该把第一个参数命名为
cls
以表示该类自身。
字符串拼接尽量使用 join 方式
Python中有join()和os.path.join()两个函数,具体作用如下:
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join(): 将多个路径组合后返回
表达式和语句
在Python之禅(可以使用import this查看)中有这么一句名言:“There should be one-- and preferably only one --obvious way to do it.”,翻译成中文是“做一件事应该有而且最好只有一种确切的做法”,这句话传达的思想在PEP 8中也是无处不在的。
采用内联形式的否定词,而不要把否定词放在整个表达式的前面。例如if a is not b就比if not a is b更容易让人理解。
不要用检查长度的方式来判断字符串、列表等是否为None或者没有元素,应该用if not x这样的写法来检查它。
就算if分支、for循环、except异常捕获等中只有一行代码,也不要将代码和if、for、except等写在一起,分开写才会让代码更清晰。
import语句总是放在文件开头的地方。
引入模块的时候,from math import sqrt比import math更好。
如果有多个import语句,应该将其分为三部分,从上到下分别是Python标准模块、第三方模块和自定义模块,每个部分内部应该按照模块名称的字母表顺序来排列。