代码布局
- 每一级缩进使用4个空格
python使用严格的代码缩进方式分割代码块,制表符只能用于与同样使用制表符缩进的代码保持一致。不允许同时使用空格和制表符的缩进。 - 所有行限制最大字符数为79
- 没有结构化限制的大块文本(文档字符或者注释),每行的最大字符数限制72
- 在运算前换行,可以加""
- 顶层函数和类定义,前后隔两个空行
- 类里方法定义用一个空行隔开。
- 变量赋值和导入声明之间插入空行,分割语义
- 代码保持紧凑,if else之间没有必要插入空行,函数调用尽量放在一起
- 导入通常在分开的行,尽量避免一行多个导入,from除外。
- from放在import后面
- 避免通配符导入
- 避免无关的空格包括
- 紧跟在小括号,中括号,大括号后
- 紧帖在逗号,分号,冒号之前
- 紧帖在函数参数的左括号之前
- 多参数之间用单空格隔开
- 在二元运算符两边加一个空格
- 多重运算优先级高的不需要空格
- 在制定关键字参数或者默认参数值的时候,不要在=附近加空格
命名规范
- 那些暴露给用户的接口命名,应该遵循反映使用场景而不是实现的原则。
- 使用英文单词命名,除非是习惯用的简拼,不要使用英文简拼
- 不要害怕过长的命名变量
- 避免重复使用变量名表示不同的对象
- 不能使用内建名称,使其在当前命名空间被屏蔽
- 避免使用o(0)和I(1)混淆
- 避免使用大小写区分不同的对象
- 使用下划线分割小写单词以提高可读性
- 常量使用大写加下划线
- 当首字母大写用到其缩写,保留缩写
- 驼峰命名首字母小写
- 包和模块应该使用简短小写名字,如果为了提升可读性,下划线也是可以用的。Python报名也应该使用简短全小写的名字,但是不建议用下划线。
- 类名一般使用首字母大写
- 对于内置变量命名单独约定,大部分内置变量是单个单词,首字母大写只用于异常名或者内部的常量
- 函数名应该用小写命名,如果提高可读性可以用下划线分割。大小写混合仅在为了兼容原来主要以大小写混合风格的情况下使用
- self作为实例方法第一个参数
- cls作为静态方法的第一个参数
- 方法名和实例变量使用下划线命名
注释原则
- 与代码相矛盾的注释比没有注释还要糟糕,当代码更改时应该优先更新对应注释
- 注释应该是完整的句子。如果一个注释是一个短语或句子,它的第一个单词应该大写,除非它是以小写字母开头的标识符(永远不能更改标识符大小写)。
- 如果注释很短,结尾的句号可以省略。块注释一般由完整的句子的一个或多个段落组成,并且每句话结束有个句号。
- 在句尾结束时应该使用两个空格
- 尽量使用英文写注释
- 块注释通常适用于跟随它们的某些(或全部)代码,并缩进到与代码相同的级别。块注释的每一行开头使用一个#和一个空格(除非块注释内部缩进文本)
- 块注释内部段落使用一个#的空行分割
- 行内注释需要有节制的使用
- 行内注释是与代码语句同行的注释。行内注释和代码至少要有两个空格分隔。注释由#和一个空格开始
- 文档说明要为所有公共模块,函数,类以及方法编写文档说明。非公共的方法没有必要,但是应该有一个描述方法具体作用的注释。这个注释应该是在def那一行之后。
- 注释应该用来解释代码的功能、原因和想法,不是对代码本身的解释。
- 不要适用注释删除代码,不要的代码直接删除,不要将其注释掉