PEP 8 – Style Guide for Python Code

官方文档

indentation 缩进

  • 使用开分符号进行对齐
  • 使用更多的缩进以和其他的代码单元区别开来
  • 悬挂缩进:增加一个缩进级别
  • 在垂直对齐时,才可在第一行使用参数
  • 当缩进不足以区分代码结构时,增加一个缩进级别

最大行长度

  • 所有行的最大长度均为79个字符
  • 正确的换行位置,在二元操作符(and,or,%)之后

空行

  • 顶级行数(当前文件中的第一个函数)或者顶级类之前要有两个空行
  • 定义在类内部的函数(成员函数)之间要留有一个空行
  • 可以使用额外的空行以区分不同的函数组
  • 在一堆只有一行的函数之间不要使用空行
  • 在函数内部使用空行,来标识不同的逻辑单元

imports

  • 在独立的行中导入不同的包
  • 从一个包中添加不同的模块或者函数是允许的
  • 总是位于文件的首部,仅在模块备注和文档之后,在模块的全局变量和常量之前的位置
  • 标准库(sys,os)> 相关的第三方库(numpy,pandas,matplotlib)> 自定义的
  • 推荐使用绝对路径包含,可读性更好,且不易出错

表达式中的空格

  • 避免使用空格:紧跟着大括号、中括号、小括号之前;紧跟着逗号、分号、冒号之前
  • 在切片中冒号可视为一个二元操作符,两边应用等数量的空格

其他

  • 总是在如下二元操作符的两边使用单空格:
    1. 赋值 =
    2. 增量赋值 +=,-=
    3. 比较 ==,<,>,!=,<>,in,is
    4. 布尔 and,or,not
  • 当被用来标识一个关键字参数(使用函数)或者一个默认参数赋值(定义函数)时,不要使用空格

文档

  • 为所有公共模块或者函数、类以及方法编写文档
  • 不必为非公共方法编写doc文档,但应有一个注释描述算法的功能,这条注释应当出现在def之后
  • 结尾的 “”“ 应当独占一行