PEP8 编码规范简要概括
1.代码编排
1.1 缩进:
4个空格的缩进,不使用Tab,更不能使用Tap和空格混用;
1.2 行长
每行最大长度79,换行可以使用反斜扛,最好是使用圆括号.换行点要在操作符的后面敲回车;
1.3 空行
类和top-level函数间空两行,类中的方法定义之间空一行,函数内无关逻辑段落之间空一行.其他地方尽量不要空行;
1.4 空格
逗号,冒号,分号前,函数,序列左括号前,各种右括号前不要加空格;
操作符左右各加一个空格,不要为了对齐而增加空格;
函数默认参数的赋值符的左右不需要加空格;
避免不必要的空格;
2.文档编排
2.1 模块内容顺序
模块说明&docstring -> import -> globals&constants -> 其他定义 ;
其中import部分,又按照 标准->三方->自建 顺序依次排列,且各组之间空一行 ;
2.2 import
不要再一句import中导入多个库,但是 from xx import xx 可以导入多个库;
当从一个包含类的模块中导入类时,如果包与类的名字有冲突,导入时先导入模块,使用模块.类,如:
from myclass import MyClass 建议改为 import myclass 再使用 myclass.MyClass;
3. 注释相关
与代码自相矛盾的注释比没有注释更糟糕;
尽量使用英文注释,除非你120%保证你的代码不会给被使用其他语言的人看;
注释应该是完整的句子,如果一个注释是一个短语或者句子,他的第一个单词应该大写,除非它是以小写字母开头的标识符(永远不要改变标识符的大小写);注释很短可以省略句号.句尾结束使用两个空格;
尽量使用代码块注释(在相应代码前),减少行内注释.块注释一般由完整的句子的一个或多个段落组成,并且每句话结束有个句号.
4.命名
4.1 命名规范
已有库采用不同规范的推荐保持内部一致性,新的模块与包(包括第三方框架)应用使用该套标准;
4.2 最重要的原则
那些暴露给用户的API接口,应该遵循反映使用场景而不是实现的原则;
4.3 命名风格
b(单个小写字母) B(单个大写字母), lowercase(小写字母), lower_case(带下划线小写字母), UPPERCASE(大写字母), UPPER_CASE(带下划线大写字母), CapitalizedWords(驼峰);
4.4 命名约定
永远不要使用 i, O, I, 作为单字符变量名;
模块与包建议使用简短全小写的名字,模块可以使用下划线提升可读性,包不建议使用下划线;
类名一般使用首字母大写的约定;
异常名同类名约定(异常也是类),需要在后面加上Error;
全局变量名同函数命名约定: 使用小写,可以使用下划线提高可读性;
方法参数:始终要将self作为实例方法的第一个参数,始终要将cls作为静态方法的第一个参数;
常量:通常定义在模块级别,通过下划线分割的全大写字母命名;
5 编程建议
使用is not 运算符,而不是 not … is;
异常:从Exception继承异常,而不是BaseException;抛出异常尽量加上异常名,而不是直接except: 块;
函数的返回保持一致,要么都返回一个表达式,要么都不返回;
使用字符串方法代替字符串模块;
对象类型的比较应该用isinstance而不是type;