如何将字符串转换为参数名称并将其传递给函数?

时间:2018-11-17 17:17:43

标签: python function arguments

所以我有这个功能

def f(a=1, b=1):
    print("a:", a, "| b:", b)

和此字典args = {"a": 4, "b": 5}。我想要做的是在第一个迭代中循环调用f(a=4),在第二个迭代中调用f(b=5)。所以基本上像这样

for key,value in args.items():
    f(key=value) 

但是以某种方式使key作为参数而不是字符串。输出应为:

a: 4 | b: 1
a: 1 | b: 5

但是我当然会得到TypeError: f() got an unexpected keyword argument 'key'

1 个答案:

答案 0 :(得分:3)

我不确定是否完全理解您的问题,但我认为您正在寻找**用作关键字参数的两种用法。

def f(**kwargs):
    for k, v in kwargs.items():
        f(**{k: v})