使用样式解包多行

Unpacking over multiple lines with style

在Python,我想做这样的事情

an_explicit_variable_name, another_explicit_variable_name, an_even_more_explicit_variable_name = function(foo)

但我也希望它是可读的并且适合几行而不是一行很长。我没有在 PEP 08. This question 中找到任何相关的帮助,但答案并不完全是我想要的。


就行长而言,这是我能想到的最好的方法,但我不太喜欢使用 a[0]

a = function(foo)
an_explicit_variable_name = a[0]
another_explicit_variable_name = a[1]
an_even_more_explicit_variable_name = a[2]

这行不通,因为第二行仍然太长

_ = function(foo)
an_explicit_variable_name, another_explicit_variable_name, an_even_more_explicit_variable_name = _

我应该将我声明的变量分成几行吗?如果是这样,我该如何缩进?

an_explicit_variable_name, \
    another_explicit_variable_name, \
    an_even_more_explicit_variable_name \
    = function(foo)


an_explicit_variable_name, \
        another_explicit_variable_name, \
        an_even_more_explicit_variable_name \
    = function(foo)

在这种情况下应该采用什么风格?

只需使用括号:

(an_explicit_variable_name, 
 another_explicit_variable_name, 
 an_even_more_explicit_variable_name) = function(foo)

或者,如果数据属于一起,则创建一个容器对象将它们放在一起,例如一个 collections.namedtuple,然后做:

data = container(*function(foo))
# use e.g. data.an_explicit_variable_name