20180520
阅读Effective Python,做一些笔记,记录在此,以供日后复习。
一、命名规则:
1. 函数、变量及属性应该用小写字母来拼写,各单词之间以下划线相连,例如,lowercase_underscore
2. 受保护的实例属性,应该以单个下划线开头,例如,_leading_underscroe
3. 私有的实例属性,应该以两个下划线开头,例如,__double_leading_underscore
4. 类与异常,应该以每个单词首字母均大写的形式来命名,例如,CapitalizedWorld
5. 模块级别的常量,应该全部采用大写字母来拼写,各单词之间以下划线相连,例如,ALL_CAPS
二、空白规则:
1. 使用space(空格)来表示缩进,而不是tab(制表符)
2. 和语法相关的每一层缩进都用4个空格来表示
3. 每行的字符数不应该超过79
4. 对于占据多行的长表达式来说,除了首行之外的其余各行都应该在通常的缩进级别之上再加4个空格
5. 文件中的函数与类之间应该用两个空行隔开
6. 在同一个类中,各个方法之间应该用一个空行隔开
7. 在使用下标来获取列表元素、调用函数或给关键字参数赋值的时候,不要在两旁添加空格
8. 为变量赋值的时候,赋值符号的左侧和右侧应该各自写上一个空格,而且只写一个就好
三、表达式和语句:
1. 采用内联形式的否定词,而不要把否定词放在整个表达式的前面,例如,应该写 if a is not b 而不是 if not a is b
2. 不要通过检测长度的办法(如 if len(somelist) == 0) 来判断somelist是否为[]或'',而是应该采用 if not somelist 这种写法来判断
3. 检测somelist是否为[1]或者'hi'等非空值时,也应该如此,if somelist 语句默认会把非空的值评估为False
4. 不要编写单行的if 语句、for循环、while循环及except复合语句,而是应该把这些语句分成多行来书写,意识清晰
5. import语句应该总是放在文件开头
5. 引入模块的时候,总是应该使用绝对名称,而不是应该根据当前模块的路径来使用相对名称,例如,引入bar包中的foo模块时,应该完整的写出from bar import foo,而不应该简写成 import foo
6. 如果一定要以相对名称来编写import语句,那就采用明确的写法,from.import foo
7. 文件中的那些import语句应该按照顺序划分成为三个部分,分别表示标准库模块、第三方模块以及自用模块。每一部分中,各import语句应该按模块的字母顺序来排列。
阅读Effective Python,做一些笔记,记录在此,以供日后复习。
一、命名规则:
1. 函数、变量及属性应该用小写字母来拼写,各单词之间以下划线相连,例如,lowercase_underscore
2. 受保护的实例属性,应该以单个下划线开头,例如,_leading_underscroe
3. 私有的实例属性,应该以两个下划线开头,例如,__double_leading_underscore
4. 类与异常,应该以每个单词首字母均大写的形式来命名,例如,CapitalizedWorld
5. 模块级别的常量,应该全部采用大写字母来拼写,各单词之间以下划线相连,例如,ALL_CAPS
二、空白规则:
1. 使用space(空格)来表示缩进,而不是tab(制表符)
2. 和语法相关的每一层缩进都用4个空格来表示
3. 每行的字符数不应该超过79
4. 对于占据多行的长表达式来说,除了首行之外的其余各行都应该在通常的缩进级别之上再加4个空格
5. 文件中的函数与类之间应该用两个空行隔开
6. 在同一个类中,各个方法之间应该用一个空行隔开
7. 在使用下标来获取列表元素、调用函数或给关键字参数赋值的时候,不要在两旁添加空格
8. 为变量赋值的时候,赋值符号的左侧和右侧应该各自写上一个空格,而且只写一个就好
三、表达式和语句:
1. 采用内联形式的否定词,而不要把否定词放在整个表达式的前面,例如,应该写 if a is not b 而不是 if not a is b
2. 不要通过检测长度的办法(如 if len(somelist) == 0) 来判断somelist是否为[]或'',而是应该采用 if not somelist 这种写法来判断
3. 检测somelist是否为[1]或者'hi'等非空值时,也应该如此,if somelist 语句默认会把非空的值评估为False
4. 不要编写单行的if 语句、for循环、while循环及except复合语句,而是应该把这些语句分成多行来书写,意识清晰
5. import语句应该总是放在文件开头
5. 引入模块的时候,总是应该使用绝对名称,而不是应该根据当前模块的路径来使用相对名称,例如,引入bar包中的foo模块时,应该完整的写出from bar import foo,而不应该简写成 import foo
6. 如果一定要以相对名称来编写import语句,那就采用明确的写法,from.import foo
7. 文件中的那些import语句应该按照顺序划分成为三个部分,分别表示标准库模块、第三方模块以及自用模块。每一部分中,各import语句应该按模块的字母顺序来排列。