每级缩进用4个空格
- Yes
# 对准左括号
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)
# if语句跨行时,推荐额外添加缩进。
if (this_is_one_thing
and that_is_another_thing):
do_something()
- No
# 不使用垂直对齐时,第一行不能有参数。
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)
右边括号也可以另起一行。有两种格式,建议第2种
# 右括号不回退,个人不推荐
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
# 右括号回退
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
空格或Tab?
- 空格是首选的缩进方法。
- Tab仅仅在已经使用tab缩进的代码中为了保持一致性而使用。
- Python3 中不允许混合使用Tab和空格缩进。
- Python2 的包含空格与Tab和空格缩进的应该全部转为空格缩进。
空行
- 两行空行分割顶层函数和类的定义。
- 类的方法定义用单个空行分割。
- 额外的空行可以必要的时候用于分割不同的函数组,但是要尽量节约使用。
- 额外的空行可以必要的时候在函数中用于分割不同的逻辑块,但是要尽量节约使用。
源文件编码
- 在核心Python发布的代码应该总是使用UTF-8(ASCII在Python 2)。
- Python 3(默认UTF-8)不应有编码声明。
导入在单独行
- Yes
import os
import sys
from subprocess import Popen, PIPE
- No
import sys, os
- 导入始终在文件的顶部,在模块注释和文档字符串之后,在模块全局变量和常量之前。
- 导入顺序如下:标准库进口,相关的第三方库,本地库。各组的导入之间要有空行。
禁止使用通配符导入。
通配符导入(from import *)应该避免,因为它不清楚命名空间有哪些名称存,混淆读者和许多自动化的工具。
字符串引用
- Python中单引号字符串和双引号字符串都是相同的。注意尽量避免在字符串中的反斜杠以提高可读性。
- 根据PEP 257, 三个引号都使用双引号。
命名
- 变量名和函数名
用下划线命名。 - 类名
类名用大写字母开头的驼峰命名 - 包和模块名
模块名要简短,全部用小写字母,可使用下划线以提高可读性。包名和模块名类似,但不推荐使用下划线。
网友评论