原址:https://legacy.python.org/dev/peps/pep-0008/python
PEP-8函数
缩进编码
每级缩进使用4个空格对象
续行应该与被圆括号、花括号、方括号包裹起来的其余元素对齐,或者使用悬挂缩进继承
使用悬挂缩进要注意:第一行不能有参数,且应该多一层缩进以便于与续行区分开文档
右括号回退,右括号应该顶行写字符串
Tab键string
空格是首选的缩进方式,制表符只能用于与一样适用制表符缩进的代码保持一致it
单行最大长度io
每行最大长度是79个字符
文档字符串、注释等最大宽度是72个字符
通常续行可使用反斜杠,而括号内续行不须要使用反斜杠
空行
顶层函数和类的定义,先后用两个空行隔开
类里的方法定义使用一个空行
模块导入
每一个模块应该单独成行
导入老是位于文件顶部,在模块注释和文档字符串以后,在模块的全局变量与常量以前
导入顺序:标准库 ----- 相关的第三方库 ----- 本地库
尽可能避免使用通配符*导入
各个import的组须要用空行隔开
组内的模块的导入顺序按照首字母排列
字符串
单引号与双引号做用同样,但必须保证成对出现
建议句子使用双引号,单词使用单引号,但不强制
表达式和语句中的空格
各类括号里面避免空格
逗号、分号和冒号以前避免空格
可是若是冒号做为分隔符,那么先后都要加空格
函数调用的左括号以前不能有空格
赋值等操做符先后不能为了对齐而添加多个空格
函数默认参数使用的赋值符左右省略空格
不要将多句语句写在同一行,哪怕if等语句中只有一句
注释:
块注释:
使用与代码相同级别的缩进
注释的每一行开头使用一个#和一个空格
块注释的内部段落经过只有一个#的空行分隔
行内注释:
与代码语句同行,至少要有两个空格分隔,由#和一个空格开始
谨慎使用
命名规范
包和模块名尽可能简短,所有使用小写字母,模块名可使用下划线链接,包名不能够
类名建议使用驼峰体
全局变量名应尽可能只在模块内部使用
函数名应该为所有小写,如下划线链接
常量名应所有使用大写字母,可使用下划线
异常名,听从类名的规则,若是是error的话,以Error为后缀
编码建议:
考虑到其余python实现的效率问题,运算符+应该用.join()方法替代
尽量使用’is’ ’is not’取代’==’
异常类应该继承自Exception 而不是BaseException
异常中不要使用裸露的except,except后跟具体的exceptions
异常中try的代码应该尽可能少
使用字符串的方法,而不是string模块
使用startswith()和endswith()两个方法替代切片进行序列前缀或后缀的检查
使用isinstance() 比较对象的类型
空序列类型对象的bool为False,能够直接用于if判断
不要用 ==和is进行bool比较
字符串不要以空格收尾