以下程序给出错误意外关键字参数“John”
def fn(a,b):
print(a, b)
emp = {'John':1, 'David':2}
fn(**emp)
Run Code Online (Sandbox Code Playgroud)
仅当字典的键为“a”和“b”时才有效。
我预计它会打印 1 和 2
下面的代码
emp = {'John':1, 'David':2}
fn(**emp)
Run Code Online (Sandbox Code Playgroud)
相当于fn(John=1, David=2). 当它设置为a和时它会起作用b,因为这些是你的参数的名称。现在我猜你想从字典中解压缩值。你可以这样做
emp = {'John':1, 'David':2}
fn(*emp.values())
Run Code Online (Sandbox Code Playgroud)
另请注意,如果该函数fn所做的唯一事情是将值传递给,print那么就没有真正的理由拥有它,因为您可以轻松地执行此操作
print(*emp.values())
Run Code Online (Sandbox Code Playgroud)