#python #syntax #syntactic-sugar
#python #синтаксис #синтаксический-сахар
Вопрос:
Можно ли заменить
veryLongOption = ...
...
bar(arg1, arg2, veryLongOption = veryLongOption, anotherVeryLongOption = anotherVeryLongOption, more = more)
с помощью чего-то подобного?
bar(arg1, arg2, =veryLongOption, =anotherVeryLongOption, =more)
Примечание: вопрос был прояснен, первый ответ был на первую форму вопроса.
Ответ №1:
Да, это, например:
def bar(x, y, a, b, c):
print(x, y, a, b, c)
arg1 = 1
arg2 = 2
def foo(*args):
bar(arg1, arg2, *args)
foo(3,4,5)
Комментарии:
1. А если мне нужно передать, например, только два аргумента из трех или
a,b,c
это не foo-аргументы, а локальные переменные?2. Во-первых, я не совсем понимаю, почему вы вообще недовольны
bar(arg1, arg2, a = a, b = b, c = c)
… И тогда мне очень непонятно, какова ваша конечная цель. Вы даете нам проблему XY здесь?3. Я не доволен тем, как это выглядит с длинными именованными аргументами :
foo(myVeryLongOption = myVeryLongOption, myOtherLongOption = myOtherLongOption)
.4. ОК. У меня было предположение, что есть простое решение, и я просто не могу его найти.