PEP 8 – Style Guide for Python Code
indentation 缩进
- 使用开分符号进行对齐
- 使用更多的缩进以和其他的代码单元区别开来
- 悬挂缩进:增加一个缩进级别
- 在垂直对齐时,才可在第一行使用参数
- 当缩进不足以区分代码结构时,增加一个缩进级别
最大行长度
- 所有行的最大长度均为79个字符
- 正确的换行位置,在二元操作符(and,or,%)之后
空行
- 顶级行数(当前文件中的第一个函数)或者顶级类之前要有两个空行
- 定义在类内部的函数(成员函数)之间要留有一个空行
- 可以使用额外的空行以区分不同的函数组
- 在一堆只有一行的函数之间不要使用空行
- 在函数内部使用空行,来标识不同的逻辑单元
imports
- 在独立的行中导入不同的包
- 从一个包中添加不同的模块或者函数是允许的
- 总是位于文件的首部,仅在模块备注和文档之后,在模块的全局变量和常量之前的位置
- 标准库(sys,os)> 相关的第三方库(numpy,pandas,matplotlib)> 自定义的
- 推荐使用绝对路径包含,可读性更好,且不易出错
表达式中的空格
- 避免使用空格:紧跟着大括号、中括号、小括号之前;紧跟着逗号、分号、冒号之前
- 在切片中冒号可视为一个二元操作符,两边应用等数量的空格
其他
- 总是在如下二元操作符的两边使用单空格:
- 赋值 =
- 增量赋值 +=,-=
- 比较 ==,<,>,!=,<>,in,is
- 布尔 and,or,not
- 当被用来标识一个关键字参数(使用函数)或者一个默认参数赋值(定义函数)时,不要使用空格
文档
- 为所有公共模块或者函数、类以及方法编写文档
- 不必为非公共方法编写doc文档,但应有一个注释描述算法的功能,这条注释应当出现在def之后
- 结尾的 “”“ 应当独占一行