取决于你所说的“适当”是什么意思。
至于
PEP 8
是的,两种风格都有效
是的
# Aligned with opening delimiter.
foo = long_function_name(var_one, var_two,
var_three, var_four)
# More indentation included to distinguish this from the rest.
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
# Hanging indents should add a level.
foo = long_function_name(
var_one, var_two,
var_three, var_four)
但是你的两个例子都是无效的。
第二个缩进2个空格,而第一个缩进19个空格,但是:
每个缩进级别使用4个空格。
(它不是
完全
很明显,“更多缩进”应该是固定数量的缩进级别,但我很确定这就是目的。)
然而,它也说:
对于连续行,4空间规则是可选的。
当然,所有的pep 8都是可选的,特别是对于不适合stdlib的代码,但是这显然是
尤其地
可选。
他们两个都远远超过了窗户的右边:
将所有行限制为最多79个字符。
对于结构限制较少的长文本块(docstring或comments),行长度应限制为72个字符。
第一个把结束语放错了地方:
多行结构上的右大括号/括号/圆括号可以在列表最后一行的第一个非空白字符下对齐,如下所示:
my_list = [
1, 2, 3,
4, 5, 6,
]
或者它可以排在开始多行构造的行的第一个字符下面,如:
my_list = [
1, 2, 3,
4, 5, 6,
]
您的第二个示例正确地执行了第二个版本;您的第一个示例错误地执行了第一个版本。
不过,第二种样式(正确地固定为使用4个空格的缩进)有一个明显的优势:将其拆分为多行的全部原因是为了使文本更容易适应窗口(即使您没有成功)。第一种样式在每行上浪费了额外的14个字符,所以效果很差。
值得注意的是
black
其他自动代码格式化程序会将第一个示例更改为第二个示例(同样,除了4个空格的缩进)。