Распаковка в несколько строк со стилем
В Python я хочу сделать что-то вроде этого
an_explicit_variable_name, another_explicit_variable_name, an_even_more_explicit_variable_name = function(foo)
Но я также хочу, чтобы это было читаемым и помещалось на нескольких коротких строках, а не на одной очень длинной. Я не нашел никакой помощи в PEP 08. Этот вопрос немного связан, но ответы не совсем то, что я хочу.
Это лучшее, что я могу придумать в отношении длины линии, но мне не очень нравится использовать 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 ответ
Решение
Просто используйте скобки:
(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