《python enhancement proposal #8》(8号python增强提案)
空白
- 用space表示缩进,不要用tab
- 每层缩进用4个空格表示
- 每行字符串不超过79
- 占用多行的长表达式,除了首行外其余各行都应该在基础之上再加4个space
- 文件中的函数与类应该用两个space隔开
- 在同一个类中,各个方法用一个space隔开
- 在使用下标获取列表元素,调用函数或者给关键词参数赋值的时候,不要在两旁加空格
- 给变量赋值的时候,赋值符号左右两侧应该各加一个space
命名
- 函数、变量及属性应该用小写字母拼写,各单词用 下划线连接,如lowercase_underscore
- 受保护的实例属性,应该以单个下划线开头,如:
_leading_underscore
- 私有的实例属性,应该以两个下划线开头,如
__double_leading_underscore
- 类和异常,应该以每个单词的首字母大写命名,如
CapitalizedWorld
- 模块级别的产量,全部大写字母命名,如
ALL_CAPS
- 类中的实例方法,首个参数命名为
self
,表示该对象自身 - 类方法的首个参数,应该命名为
cls
,表示该类自身
表达式和语句
- 文件中import语句应该放在最前面,分为3个部分,分别表示标准库模块,第三方模块,自用模块
- 引入模块的时候,应该使用绝对名称,而不是当前模块来的路径来使用相对名称。例如映入bar包中的foo模块,应该完整写出
from bar import foo
,而不是import foo
- 如果一定要用相对名称写import语句,采用明确的写法
from . import foo
- 不要通过检测长度的办法
if len(list)==0
来判断list是否为[],或者‘’等空值,而是应该采用if not list
来判断,它会将空值自动评估为false - 采用内联形式的否定词,而不要将否定词放在整个表达式的最前面,如
if a is not b
而不是if not a is b