根据PEP 8,这是可以接受的(以及我过去使用过的):
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
我的问题是,这是否也适用于函数定义,例如:
def some_function_that_takes_arguments(
a, b, c,
d, e, f,
):
return a,b,c,d,e,f
我过去所做的另一个例子:
if (this_is_one_thing
and that_is_another_thing
):
do_something()
我已经这样做了一段时间(为了保持一致性,我的所有行> 79 col都是这样分开的),我想知道其他人的想法是什么。
看清楚/好看吗?这是否符合PEP 8?
答案 0 :(得分:2)
根据PEP8上的doc,它是。只要缩进级别为4个空格,就可以将函数声明分解为多行。
延续线应垂直对齐包裹的元素 在括号,括号和括号内使用Python的隐式线连接 支撑,或使用悬挂缩进[7]。当使用悬挂缩进时 应考虑以下事项;应该没有任何争论 第一行和进一步缩进应该用于清楚 将自己区分为延续线。
是:
# 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)
作为旁注,如果由于参数的数量而发现函数签名变长,请考虑将函数分解为更多原子单位(因此遵守干净的代码原则)。 / p>