def f(**args):
print(args)
这会产生TypeError异常。虽然我没有传递args,比如f()。它什么都不打印。
可能是什么原因以及如何通过args?我尝试用f([4,5]),但仍然是相同的结果
答案 0 :(得分:2)
f
只有字典参数**args
(更频繁地写为**kwargs
),这意味着只允许关键字参数(当然也不允许传递任何内容)。
要启用位置参数,请添加*args
:
def f(*args,**kwargs)
或使用任何关键字传递参数:
f(foo=[4,5])
和kwargs["foo"]
[4,5]
中的f
答案 1 :(得分:2)
**
处理关键字参数。所以你的函数确实没有采用任何位置参数,只接受关键字参数(或什么都没有)。
位置参数与*args
聚合,常规关键字参数与**kwargs
聚合。