我正在用*args
和**kwargs
测试一些代码,我为**kwargs
编写了一个dictionary
。因为某种原因,我
def func(*args, **kwargs):
if args:
second_test(*args)
elif kwargs:
second_test(**kwargs)
def second_test(stringa, integera, floata):
print("Name: %s, Problems Correct: %d, Points: %f" % (stringa, integera, floata))
profile_1 = ["David", 21, 132.00]
func(*profile_1)
profile_1a = {'Name': 'David', 'Problems Correct': 21, 'Points': 132.00}
func(**profile_1a)
代码从line 44
开始,到line 57
结束。这是我得到的错误:
我在google上搜索了“unexpected keyword argument”,但我找不到定义;只有其他stackoverflow文章。我的代码怎么了?在
将},那么函数就可以正常工作了。在
kwargs
传入函数时,它期望在列表中找到确切的变量名。如果您的字典键是stringa
、integera
、和{所以你需要改变你的函数变量名,或者改变字典里的键名来实现
关键字参数是按名称传递的所有“未知/意外”命名的参数。在
例如,让我们用一个参数定义一个函数
现在,如果我们用这样一个“意外的”命名参数来调用这个函数
^{pr2}$然后我们会得到一个打字错误。但是,如果我们将函数修改为除了这些“意外的”命名参数,那么我们就可以运行前面的代码了
相关问题 更多 >
编程相关推荐