顶级函数和类定义之间,请用两个空行分隔 。
类内部的各个方法定义之间,请用1个空行分隔 。
为了让有关联的函数成组,可以在各函数组之间有节制地添加空行 。相互关联的一组单行函数之间,可以省略空行,如一组函数的伪实现(dummy implementation) 。
函数内部可以有节制地用空行来区分出各个逻辑部分 。
Python可将Ctrl+L(^L)换页符接受为空白符 。很多工具都将其视为分页符,所以可以利用其进行分页,使得文件中的关联部分单独成页 。
5.
导入
导入语句通常应单独成行,例如:
1import os
2import sys
不要像下面这样写在一起:
1import sys, os
不过下面的写法没有问题:
1from subprocess import Popen, PIPE
导入语句通常位于文件的顶部,紧挨着模块注释和文档字符串后面,在模块全局变量和常量定义之前 。
导入语句应按照以下顺序进行分组 。
(1)标准库的导入 。
(2)相关第三方库的导入 。
(3)本地应用程序/库——特定库的导入 。
每组导入语句之间请加入1个空行 。
任何对应的__all__声明都应位于导入语句之后 。
非常不推荐对内部包的导入使用相对导入语法 。请始终对所有导入都使用绝对包路径 。即便Python 2.5现在已完全实现了PEP 328,它的显式相对导入语法也是强烈不推荐的 。绝对导入的可移植性更好,通常可读性也会更好 。
如果是从包含类的模块中导入类,通常可以采用如下写法:
1from myclass import MyClass
2from foo.bar.yourclass import YourClass
如果上述写法会导致本地命名冲突,就采用如下写法:
1import myclass
2import foo.bar.yourclass
然后用myclass.MyClass和foo.bar.yourclass.YourClass表示类 。
6.
表达式和语句内的空白符
讨厌之事——以下场合应避免使用多余的空白符 。
- 紧靠小括号、中括号或大括号内部 。
1spam(ham[1], {eggs: 2})
错误:
1spam( ham[ 1 ], { eggs: 2 } )
- 紧挨着逗号、分号或冒号之前 。
1if x == 4: print x, y; x, y = y, x
错误:
1if x == 4 : print x , y ; x , y = y , x
- 紧挨着函数参数列表的左括号之前 。
1spam(1)
错误:
1spam (1)
- 紧挨着索引或切片操作的左括号之前 。
1dict['key'] = list[index]
错误:
1dict ['key'] = list [index]
- 为了与另一条赋值或其他语句对齐,在运算符两边使用多个空格 。
1x = 1
2y = 2
3long_variable = 3
错误:
1x = 1
2y = 2
3long_variable = 3
7.
其他建议
始终在以下二元操作符两侧各放1个空格:赋值(
=)、增量赋值(+=,-=等)、比较(==、<、>、!=、<>、<=、>=、in、not、in、is、is not)、布尔(and、or、not) 。- 在数学运算符两侧放置空格 。
1i = i + 1
2submitted += 1
3
4x = x * 2 – 1
5hypot2 = x * x + y * y
6c = (a + b) * (a - b)
错误:
1i=i+1
2submitted +=1
3x = x*2 – 1
4hypot2 = x*x + y*y
5c = (a+b) * (a-b)
- 在用于指定关键字参数或默认参数值时,请勿在
=两边使用空格 。
1def complex(real, imag=0.0):
2 return magic(r=real, i=imag)
错误:
1def complex(real, imag = 0.0):
2 return magic(r = real, i = imag)
- 通常不鼓励使用复合语句,也就是在同一行放置多条语句 。
1if foo == 'blah':
2 do_blah_thing
3do_one
4do_two
5do_three
最好不要:
1if foo == 'blah': do_blah_thing
2do_one; do_two; do_three
- 虽然有时候将小块代码和
if/for/while放在同一行没什么问题,但多行语句绝对不能如此 。同时还要避免过长代码行的折叠!
推荐阅读
- Python新手知识点大纲
- Python文件和数据格式化!你学会了吗?
- 使用一行Python代码从图像读取文本
- 你真的了解Python吗?这篇文章可以让你了解90%
- Python中的列表、元组、集合和字典详解
- 小户型家庭装潢设计风格如何选择
- 小户型客厅装修风格有哪些
- 田园式房屋装修风格的设计要点
- Python打牢基础,从12个语法开始
- 5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难
