Передача аргументов из переменной - Python - PullRequest
0 голосов
/ 22 апреля 2020

Я пишу python скрипт. В сценарии я написал функцию с некоторыми аргументами, которые имеют значения по умолчанию. Также в скрипте у меня есть список кортежей, первый элемент в каждом кортеже - это имя аргумента функции, второй - значение. Вот код для примера:

def f(a=0, b=0, c=0):
    print(a), print(b), print(c)

args = [('a', 12), ('c', -64)]

Есть ли способ, когда я вызываю метод, чтобы поместить значение 12 в аргументе 'a' и значение -64 в аргументе 'c' без делать это вручную? (значение b остается 0).

Спасибо за любую помощь!

Ответы [ 2 ]

4 голосов
/ 22 апреля 2020

Вы можете создать словарь, затем распаковать его с помощью **:

f(**dict(args))

выведет

12
0
-64
0 голосов
/ 22 апреля 2020
def f(a=0, b=0, c=0):
    print(a), print(b), print(c)

args = [('a', 12), ('c', -64)]

f(**dict(args))

результат:

a = 12
b = 0
c = -64

Но лучший способ использовать dict

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...