**函数中的args引发TypeError"取0位置参数" [蟒蛇]

时间:2017-10-26 11:36:04

标签: python

def f(**args):
    print(args)

这会产生TypeError异常。虽然我没有传递args,比如f()。它什么都不打印。

可能是什么原因以及如何通过args?我尝试用f([4,5]),但仍然是相同的结果

2 个答案:

答案 0 :(得分:2)

f只有字典参数**args(更频繁地写为**kwargs),这意味着只允许关键字参数(当然也不允许传递任何内容)。

要启用位置参数,请添加*args

def f(*args,**kwargs)

或使用任何关键字传递参数:

f(foo=[4,5])

kwargs["foo"] [4,5]中的f

答案 1 :(得分:2)

**处理关键字参数。所以你的函数确实没有采用任何位置参数,只接受关键字参数(或什么都没有)。

位置参数与*args聚合,常规关键字参数与**kwargs聚合。