遵循PEP8风格指南

时间:2022-01-26 03:24:20

整理来自 effective python

一 空白

  1 使用space来标识缩进,而不是tab

  2 和语法相关的每层缩进都使用4个空格

  3 每行的字符数不应该超过79

  4 对于多行的表达式,除了首行,其他行再缩进4个空格

  5 文件中的函数和类之间用两个空行隔开

  6 同一个类中,各个函数使用一个空行隔开

  7 在使用下标来获取元素,调用函数或者给关键字赋值的时候,不要再两旁添加空格

  8 为变量赋值的时候,赋值符号的左侧和右侧应该各自写上一个空格,而且只写一个就好

二 命名

  1 函数,变量及属性应该用小写字母来拼写,各个单词之间用下划线相连,例如 lowercase_underscore

  2 受保护的实例属性应该以一个下划线开头

  3 私有的实例属性应该以两个下划线开头

  4 类与异常,应该以每个单词的首字母大写来书写,CapitalizedWord

  5 模块级别的常量,所有字符均大写,单词之间使用下划线相连,ALL_CAPS

  6 类的实例方法(Instance method)应该把首个参数命名为self,以表示对象本身

  7 类方法(Class method)应该把首个参数命名为cls,以表示类自身

三 表达式和语句

  1 采用内联形式的否定词,而不是把否定词放在整个表达式的前面,例如 应该写if a is not b 而不是 if not a is b

  2 不要通过检查长度的办法(如 if len(somelist)==0) 来判定somelist是否为[] 或者‘’ 等空值,而应该采用 if not somelist这种写法来判断,它会假定:空值将自动评估为False

  3 检测somelist是否为[1]或者'hi'等非空值时,也该如此,if somelist 语句默认会把非空值判定为True

  4 不要编写单行if /for/ while/ except复合语句,而是应该把这些语句分成多行来写。

  5 import语句应该始终位于文件的开头

  6 引入模块的时候应该总是使用绝对名称,而不应该根据当前的路径来使用相对名称,例如,引入bar包中的foo模块时,应该完整地写出from bar import foo,而不应该简单写成import foo

  7 如果一定要以相对名称来编写import语句,那就采用明确的写法:from.import foo

  8 文件中的import语句应该按照顺序分成三个部分,分别表示标准库模块,第三方模块以及自用模块。在每一部分之中,各import语句应该按照模块的字母顺序来排列。