得到了意外的关键字参数

问题描述

使用 kwargs 从字典中解包元素。解释器抛出意外的关键字参数错误

def f (x,y,z) : return x + y * z

y = lambda x,z : x+y+z

print(f(**{ 'z' : 4,'x' : 1,'y' : 3 }))

print(y(**{ 'z' : 4,'y' : 3 }))

print(f(**{ 'z' : 4,"xx" : 1,'xx' : 1,'y' : 3 }))

错误消息:

13
8
Traceback (most recent call last):
  File "C:/python39/test.py",line 8,in <module>
    print(f(**{ 'z' : 4,'y' : 3 }))
TypeError: f() got an unexpected keyword argument 'xx'

解决方法

我猜你在位置参数和键控参数之间混淆了。

解包字典键 xx 与名为 xx 的命名参数之间的字典 python 匹配时,但没有。

如果你想解包位置参数使用 *[4,1,3] 并且它将被映射到 x=4,y=1,z=3