使用样式拆开多行

时间:2015-08-26 11:21:24

标签: python python-2.7 coding-style iterable-unpacking

在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)

在这种情况下采用什么样的风格?

1 个答案:

答案 0 :(得分:5)

只需使用括号:

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

或者,如果数据属于一起,则创建一个容器对象以将其保持在一起,例如a collections.namedtuple,然后执行:

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