Есть ли более лаконичный способ написать это?
f(a=a, b=b, c=c, d=d, e=e)
Предыстория: у меня есть функция со слишком большим количеством аргументов
f(a, b, c, d, e):
pass
В моей программе есть локальные переменные, имена которых точно такие же, как у параметров функции.
a, b, c, d, e = range(5)
Я хотел бы вызвать функцию с ключевыми аргументами. Так как переменные названы одинаково, вызов будет выглядеть именно так.
g = f(a=a, b=b, c=c, d=d, e=e) # this can get very long
Конечно, я могу передавать предложения, используя позицию вместо ключевых слов вроде этого
g = f(a, b, c, d, e)
Но a
, b
, c
, d
, e
- это просто имена переменных в этом примере, и легко увидеть правильный порядок. Однако, к сожалению, переменные в моей программе названы более сложно, и нет легко различимого естественного порядка. Так что мне очень нравится передавать их по ключевым словам, чтобы избежать ошибок.