1 PEP 8 的意义
《Python Enhancement Proposal 8》又叫 PEP 8,它是针对 Python 代码格式而编制的风格指南。 链接:https://www.python.org/dev/peps/pep-0008/
主要作用:
函数、变量以及属性
应该用小写字母来拼写。def sum_a_+_b(int a, int b):
...
类
与异常,应该以每个单词首字母大写的形式来命名。class SmallCar():
...
#
CapitalizedWord
模块级别的常量
,应该全部采用大写字母来拼写,各单词下划线连接。ALL_CAPS
受保护的实例属性
,应该以单个下划线开头。_leading_underscore
私有的实例属性
,应该以两个下划线开头。__double_leading_underscore
2.2 空白
每行不超过 79 个字符。
- 在变量赋值的时候,赋值符号的左侧和右侧应该各自写上一个空格。
- 文件中的 函数 和 类 之间应该用两个空行隔开。
- 在同一个类中,各方法 之间应该用一个空行隔开。
- 对于占据多行的长表达式来说,除了首行之外的其余各行都应该在通常的缩进级别之上再加4个空格。
给变量的类型做注解(annotation)时,不要把变量名和冒号隔开,但在类型信息前应该有一个空格。
2.3 表达式和语句
不要用
if len(a) == 0
来判断a
列表是否为空值。if not a: # 判断 a 是空
...
if a: # 判断 a 不空
...
采用内联形式的否定词,而不是把否定词放到整个表达式前面。
if a is not b: # 推荐
if not a is b: # 不推荐
不要编写单行的 if 语句、for 循环、while 循环及 except 复合语句。
-
2.4 有关引入 import
import 语句(含 from x import y)总是放在文件开头。
- import 语句根据顺序分为三个部分:
- 标准库模块
- 第三方模块
- 自用模块
- 引入模块时,总是应该使用绝对名称,而不应该根据当前模块路径而使用相对名称。
- 例如,要引入 bar 包中的 foo 模块,应该完整地写出 from bar import foo,
- 即便当前路径为 bar 包里,也不应该简写为 import foo 。
- 如果一定要用相对名称来编写 import 语句,那就应该明确地写成:from . import foo 。
- 在每一模块中,按照字母顺序排列。
Pylint 流行的 Python 源码静态分析工具。 它可以自动检测受测代码是否符合 PEP 8 的风格。