所以我有这个功能
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'
。
答案 0 :(得分:3)
我不确定是否完全理解您的问题,但我认为您正在寻找**
用作关键字参数的两种用法。
def f(**kwargs):
for k, v in kwargs.items():
f(**{k: v})