文章目录
-
- 1.1 空白
- 1.2 命名
- 1.3 表达式和语句
- 1.4 要点
- 总结
《Python Enhancement Proposal 8》(PEP8) 是针对Python代码格式而编订的风格指南,附上指南链接。本文主要介绍部分要点。
1.1 空白
- 使用space(空格)而不是tab(制表符)来表示缩进,和语法相关的每一层缩进都要用4个空格表示。
- 每行的字符数不超过79,占据多行的长表达式需要在原有缩进级别上再加4个空格。
- 文件中,函数与类之间间隔两行,同一个类中各方法之间隔一行。
- 使用下标来获取列表元素、调用函数或给关键字参数赋值的时候,不需要添加空格。
- 给变量赋值的时候,赋值符号左右各加一个空格。
1.2 命名
- 函数、变量及属性使用小写字母,各个单词之间用下划线相连,eg:
lowercase_underscore
。
- protect 实例属性,用单个下划线开头,eg:
_leading_underscore
。
- private 实例属性,用两个下划线开头,eg:
___double_leading_underscore
。
- 类与异常,每个单词的首字母都大写,eg:
CapitalizedWord
。
- 模块级别的常量,全部使用大写字母拼写,各单词之间使用下划线相连,eg:
ALL_CAPS
- 类中的实例方法(instance method),应该把首个参数命名为
self
,表示该对象自身。
- 类方法(class method)的首个参数,应该命名为
cls
,表示该类自身。
1.3 表达式和语句
- 使用内联形式的否定词,而不是把否定词放在表达式前面。例如,应该写成
if a is not b
而不是写成 if not a is b
- 不要通过检测长度的办法(如
if len(somelist) == 0
)来判断somelist是否为门或"等空值,而是应该采用if not somelist
这种写法来判断,它会假定:空值将自动评估为False。
- 检测somelist是否为[1]或’hi’等非空值时,也应如此,
if somelist
语句默认会把非空的值判断为True。
- 不要编写单行的if语句、for循环、while循环及except复合语句,而是应该把这些语句分成多行来书写,以示清晰。
- import 语句应该总是放在文件开头
- 引人模块的时候,总是应该使用绝对名称,而不应该根据当前模块的路径来使用相对名称。例如,引入bar包中的foo模块时,应该完整地写出
from bar import foo
,而不应该简写为import foo
。
- 如果一定要以相对名称来编写import语句,那就采用明确的写法:
from . import foo
。
- 文件中的那些import 语句应该按顺序划分成三个部分,分别表示标准库模块、第三方模块以及自用模块。在每一部分之中,各import语句应该按模块的字母顺序来排列。
1.4 要点
- 当编写Python 代码时,总是应该遵循PEP8风格指南。
- 与广大Python开发者采用同一套代码风格,可以使项目更利于多人协作。
- 采用一致的风格来编写代码,可以令后续的修改工作变得更为容易。
总结
希望我的代码写的像诗一样,现实是像shit一样,慢慢加油。