程序代码是用来读的, 提高代码可读性需要掌握PEP8代码规范
这需要坚持一致性考虑
1 关于空格
缩进使用4空格
括号换行时, 有三种范例可以遵守
# 对准左括号
foo = long_function_name(var_one, var_two,
var_three, var_four)
# 不对准左括号,但加多一层缩进,以和后面内容区别。
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
# 悬挂缩进必须加多一层缩进.
foo = long_function_name(
var_one, var_two,
var_three, var_four)
右括号回退
# 右括号回退
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
一行最多72个字符, 超过之后需要换行
括号与括号内容之间不应该有空格
# 括号里边避免空格
# 推荐
spam(ham[1], {eggs: 2})
# 不推荐
spam( ham[ 1 ], { eggs: 2 } )
逗号, 冒号, 分号分割数据的时候应该紧跟左边的内容, 与右边内容之间加一个空格
# 逗号,冒号,分号之前避免空格
# Yes
if x == 4: print x, y; x, y = y, x
# No
if x == 4 : print x , y ; x , y = y , x
索引的冒号之间不应搞有空格
二元运算符, =, +=, -=, ... and, or等前后有要有空格
+. -前后要有空格, *, / 前后不应该有空格
函数定义的参数列表, 每个参数之间用逗号分隔, 前面不加空格, 后面加空格
函数定义的参数列表中的默认参数的=前后不应该有空格
类似if/else等后面加冒号后面跟程序块的, 不要和if/else写在一行
注释#后面加一个空格
2 关于换行
在类中, 类名和第一个函数间隔2行
在类中, 类中的函数之间间隔1行
3 关于导入
单独的import后面最好是单个
from..import可以不是单个
推荐是用绝对路径导入, 不推荐使用相对路径导入
尽量避免通配符导入, 如尽量少使用*
4 关于命名
模块名全部使用小写字母, 使用下划线来增加可读性
包的命名和模块差不多, 但是包最好不要用下划线
类名, 首字母大写, 采用驼峰写法
函数名, 全部使用小写字母
全局变量, 全部是用大写字母, 可以使用下划线来增加可读性
私有变量, 变量名字前面加上一个下划线
特殊变量. 变量名字前后都加上两个下划线