Effective Python 读书笔记——第 2 条
转载请注明出处:https://blog.youkuaiyun.com/jpch89/article/details/84311771
第 2 条:遵循 PEP8 风格指南
8
号 Python
增强提案,又叫 PEP 8
Python Enhancement Proposal #8
http://www.python.org/dev/peps/pep-0008
空白 whitespace
会影响代码的含义。
- 使用四个空格
space
缩进,不要用制表符tab
- 每行字符数小于等于
79
- 对于占据多行的表达式,首行之后的其余各行都要再缩进
4
个空格 - 文件中的函数与类之间要用两个空行隔开
- 同一个类中,各方法用一个空行隔开
- 使用下标来获取列表元素、调用函数或者给关键字参数赋值时,不要在两旁添加空格
- 变量赋值的时候等号两边要各有一个空格
命名:不同的命名风格体现不同角色。
- 函数、变量、属性用小写字母,以下划线连接
- 受保护的实例属性,以单下划线开头
- 私有的实例属性,以双下划线开头
- 类与异常,大驼峰式命名
- 模块级别的常量,全用大写字母,以下划线连接
- 类中的实例方法
instance method
,首个参数应该叫做self
,以表示该对象本身 - 类方法
class method
,首个参数应该叫做cls
,以表示该类本身
表达式和语句
- 不要把否定词放在前面,要写
if a is not b
而不是if not a is b
- 不要用长度检测来判定为空(
if len(somelist) == 0
),而是用if not somelist
(空值为False
) - 判定非空用
if somelist
- 不要写单行的复合的
if
、for
、while
、except
语句,要拆开来写 import
总是放在文件开头- 导入模块的时候,使用完整的绝对名称,而不应该根据当前模块的路径来使用相对名称。例如,导入
bar
包中的foo
模块,应该写from bar import foo
,而不是import foo
。 - 如果一定要用相对名称,就采用明确的写法
from . import foo
举个例子:对于
Python 3
,在包内导入时,假如a.py
导入b.py
写成import b
,那么在包外import package.a
或者from package import a
时一定会报错。此时就要用from package import b
或者from . import b
才行。
import
按顺序划分为标准库模块、第三方模块以及自用模块。在每一部分,各import
语句按字母顺序排列。
Pylint
http://www.pylint.org/
源码检测工具