Передача аргументов ключевого слова функции, когда имена локальных переменных совпадают с именами параметров функции

Есть ли более лаконичный способ написать это?

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 - это просто имена переменных в этом примере, и легко увидеть правильный порядок. Однако, к сожалению, переменные в моей программе названы более сложно, и нет легко различимого естественного порядка. Так что мне очень нравится передавать их по ключевым словам, чтобы избежать ошибок.

8
задан Praveen Gollakota 2 May 2011 в 18:36
поделиться