В качестве одного оператора, нет никаких подвыражений для скобок.Я не фанат явных продолжений строк, но это, вероятно, тот случай, когда он выглядит наименее плохим (возможно, потому, что имена переменных все еще, вероятно, короче, чем другие строки, которые вы можете разбивать).
long_variable_name = \
another_long_name = \
a_third_name = some_func()
Я не знаю, хотите ли вы поместить вызов функции в строку отдельно или нет.
Если вы действительно хотите избежать явного разрыва строки, я бы рекомендовал не разбивать цепочки назначений в первую очередь..
long_variable_name = some_func()
another_long_name = long_variable_name
a_third_name = long_variable_name
Вы можете попробовать распаковать кортежи.Это выглядит немного хамски IMO, но ...
(long_variable_name,
another_long_name,
a third_name) = (some_func(),)*3
За счет немного больше накладных расходов времени выполнения, вы можете использовать itertools.repeat
:
from itertools import repeat
(long_variable_name,
another_long_name,
a third_name) = repeat(some_func(), 3)
, хотя оба подхода делаютВы также указываете количество назначаемых переменных.Хотя во время распаковки кортежа вы можете захватить остаток конечной последовательности в универсальной переменной, я не знаю подобного трюка для бесконечных последовательностей.
# Good
v1, v2, v3, *rest = repeat(some_func(), 100)
# Bad - infinite loop
v1, v2, v3, *rest = repeat(some_func())