PEP8 风格指南:
- 缩进,用 4 个空格,不要用制表符。(Python 不允许混合制表符和空格进行缩进。)
- 换行,一行不超过 79 个字符。
- 用空行分隔函数和类,及函数内较大的代码块。
- 用两个空行包围顶级函数和类定义。
- 类内的方法定义由一个空行包围。
- 最好把注释放到单独一行。
- 与代码相矛盾的注释比没有注释更糟糕。当代码更改时,始终优先考虑使注释保持最新!
- 注释应该是完整的句子。第一个单词应大写,除非它是以小写字母开头的标识符(切勿更改标识符的大小写!)。
- 块注释通常适用于其后面的部分(或全部)代码,并且缩进到与该代码相同的级别。块注释的每一行都以
#
和一个空格开头(除非它是注释内的缩进文本)。 - 谨慎使用内联注释。
内联注释是与语句位于同一行的注释。内联注释与语句之间应至少用两个空格分隔。它们应该以#
和一个空格开头。
- 导入通常应该在单独的行上。
- 导入始终放在文件的顶部,紧接在任何模块注释和文档字符串之后,以及模块全局变量和常量之前。
- 使用文档字符串。
"""
结束多行文档字符串的 应该单独占一行- 对于单行文档字符串,请将结尾保持
"""
在同一行
- 对于三引号字符串,请始终使用双引号字符。
- 运算符前后、逗号后要用空格,但不要直接在括号内使用: a = f(1, 2) + g(3, 4)。
- 如果使用具有不同优先级的运算符,请考虑在优先级最低的运算符周围添加空格。
- 类和函数的命名要一致;按惯例,命名类用
UpperCamelCase
,命名函数与方法用lowercase_with_underscores
。- 在命名中使用缩略词时,请将缩略词的所有字母大写。因此 HTTPServerError 比 HttpServerError 更好。
- 避免与Python关键字冲突可以附加一个尾随下划线
_
,如list_
,更好的方法是使用同义词来避免此类冲突。 - 对非公共方法和实例变量使用一个前导下划线。
- 编写用于国际多语环境的代码时,不要用生僻的编码。Python 默认的 UTF-8 或纯 ASCII 可以胜任各种情况。
- 不要在标识符中使用非 ASCII 字符。
- 返回语句保持一致。函数中的所有
return
语句要么都返回表达式,要么都不返回。 - 对象类型比较应始终使用
isinstance()
而不是直接比较类型。
函数文档字符串应以大写字母开头,以句点结尾
。文档字符串为多行时,第二行应为空白行
,在视觉上将摘要与其余描述分开。后面的行可包含若干段落,描述对象的调用约定、副作用等。
函数在 执行 时使用函数局部变量符号表,所有函数变量赋值都存在局部符号表中;引用变量时,查找顺序:局部符号表
>> 外层函数局部符号表
>> 全局符号表
>> 内置名称符号表
。尽管可以引用全局变量和外层函数的变量,但最好不要在函数内直接赋值(除非是 global
语句定义的全局变量,或 nonlocal
语句定义的外层函数变量)。
函数参数中,默认值参数只计算一次
!