python规范-编码规范
代码编排
-
缩进: 使用4个空格作为缩进, 不要使用tab、更加不要混用tab和空格
-
每行最大字符长度79, 需要换行时使用反斜杠'\'进行换行
-
定义class空2行, 定义function空1行。 class中方法之间空一行, (if-else)逻辑处理无关空一行, 其他尽量不空行
文档编排
-
不要在一句import中多个库, 比如import os,sys
空格使用
-
逗号、冒号、分号前不使用空格
-
操作符左右各一个空格,不要为了对齐代码而增加空格
-
不要将多条语句写在同一行
-
if/while/for语句中, 哪怕执行语句只有一条, 也必须另起一行
命名规范
-
尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。
-
模块命名全部小写, 可以使用下划线
-
包命名全部小写, 不可以使用下划线
-
类的命名使用CapWords(大驼峰法)这种方法, 模块内部使用的类使用_CapWords的方式
-
异常命名使用CapWords + Error后缀的方式
-
全局变量使用'__all__'机制或在变量前加下划线'_', 使其只在模块内生效
-
函数命名全部小写, 可以使用下划线
-
常量命名全部大写,可以使用下划线
-
类的属性如果与关键字冲突, 则后缀下划线,不要缩略。
-
类的方法第一个参数必须是self, 静态方法第一个参数必须是cls
编码建议
-
字符串拼接尽量使用''.join()的方式,而不是使用操作运算符'+',在某些版本的python中, ‘+’的性能会非常低下
-
尽可能使用is, is not代替==, 比如if x在特定条件下会导致判断错误, 而if x not None 不会。
-
使用基于类的异常, 每个模块或包都有自己的异常类, 通常都是继承自Exception基类。
-
异常中以及捕捉异常时, 不要使用裸露的except, 而是在except后紧跟具体的异常名称, 如: except RuntimeError
-
try的代码尽可能的少, 而不是尽可能的多
-
使用startswith和endswith来进行前缀或后缀的检查,而不是使用切片
-
使用isinstance来比较对象的类型, 而不是使用type(obj) == obj
-
由于python著名的PIL问题, 在使用python3以下版本时, 如果需要用到多线程,尽量使用multiprocessing.dummy提供的多线程而不是threading
注释
-
错误的注释不如不注释, 所以在代码更改之后注释也要即时更新
-
尽量少或不使用行注释, 而选择使用块注释
-
可以使用文档描述的方式来代替注释介绍函数/类的作用、使用方式、可能抛出的异常等

浙公网安备 33010602011771号