PEP是Python Enhancement Proposal的缩写,本章权作笔记之用,谨记开发之中应当遵守的规范,盖以 “不逾矩”可弊之。
空格的使用
1. 使用空格表示缩进而不是制表符(Tab)
2. 和语法相关的每一层缩进都用四个空格来表示(因为不像其他语言有花括号之类的符号可以标识代码块)
3. 每行的字符不要超过79个字符,如果表达式因太长而占据了多行,除了首行之外的其余各行都应该在正常缩进的情况下再加上四个空格
4. 函数和类的定义,代码前后要用两个空行进行分隔
5. 同一个类中,各个方法之间要用一个空行进行分隔
6. 二元运算符的两侧要保留一个空格,而且仅需一个
标识符命名
1. 变量、函数和属性应该使用小写字母来拼写,多个单词就是用下划线进行连接
2. 类中受保护的实例属性应该以一个下划线开头
3. 类中私有的实例属性应该以两个下划线开头
4. 类和异常的命名应该每个单词首字母大写
5. 模块级别的常量应采用全大写字母,如果有多个单词就用下划线进行连接
6. 类的实例方法应该把第一个参数命名为self来表示对象自身
7. 类的类方法应该把第一个参数命名为cls以表示类自身
表达式和语句
Python 之禅中有一句 “There should be one -- and preferably only one -- obvious way to do it”,翻译过来是最好有且仅有一种确切的解决方法,这种思想在PEP 8中也是表现得淋漓尽致。
1. 采用内联形式的否定词,而不是将否定词放在整个表达式的前面。例如 if a is not b 要好于 if not a is b
2. 不要用检查长度来验证字符串、列表等是否为None或者没有元素,而应该用if not xxx 来判断
3. 就算if分支、for循环以及except异常捕获只有一行代码,也不要将代码和if for except等些在一起,分开写会更清晰
4. import 语句总是放在文件开头的位置
5. 引入模块的时候,from math import sqrt 要好于import math
6. 如果有多个import 语句,应该将其分为按部分没从上到下分别是Python 标准模块、第三方模块和自定义模块。每个部分内部应该按照模块名称的字母表顺序来排列