目录
1、代码布局
1.1缩进换行
- 每个缩进级别使用四个空格
- 当使用悬挂缩进时:第一行不应该有任何参数,进一步缩进来区分,如
def long_function_name( var_one, var_two, var_three, var_four): print(var_one)
- 最后一行的括号对齐到列表最后一列的第一个非空或第一个字符下,如
my_list = [ 1, 2, 3, 4, 5, 6, ] my_list = [ 1, 2, 3, 4, 5, 6, ]
- 在二进制运算符后换行
- import应该在单独的行上
1.2 最大行长度
- 所有行限制最多有79个字符(文档字符串、注释限制为72字符)
- 多个with语句可以通过反斜杠来延续
1.3字符串引用
- 当字符串包含单引号或双引号时,使用另一个引号以避免字符串出现反斜杠
2、表达式和语句的空白
2.1在括号里
spam(ham[1], {eggs: 2})
foo = (0,)
2.2在逗号、分号或冒号之前
if x == 4: print x, y; x, y = y, x
2.3在切片中
ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
ham[lower:upper], ham[lower:upper:], ham[lower::step]
ham[lower+offset : upper+offset]
ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
ham[lower + offset : upper + offset]
2.4运算操作中
- 在优先级最低的操作符周围添加空格
- 二进制操作符的两边总是有相同数量的空格
x = x*2 - 1 hypot2 = x*x + y*y c = (a+b) * (a-b)
2.5在函数中
- 出现->箭头,周围有空格
- 指示关键字参数或参数默认值时,不要在=周围使用空格
def munge(input: AnyStr): ... def munge() -> PosInt: ... def munge(input: AnyStr, sep: AnyStr = None, limit=1000): ... def complex(real, imag=0.0): return magic(r=real, i=imag)
3、注释
- 块注释:每一行都以#和一个空格开头
- 内敛注释:至少用两个空格隔开,注意陈述内容是否必要
- 文档字符串:多行字符串结尾应该当读一行;一行文档的字符串结束的“”要保持在同一行
4、命名
4.1模块
- 尽量使用小写,首字母保持小写,尽量不要用下划线
4.2类名
- 驼峰命名风格,首字母大写,私有类可用一个下划线开头
4.3函数
- 函数名一律小写,若有多个单词,用下划线隔开
- 私有函数在函数前加下划线
4.4变量名 &常量名
- 变量名尽量小写,若有多个单词,用下划线隔开
- 常量采用全大写,若有多个单词,用下划线隔开
参考: 《Python PEP8》