是否可以在python中“打包”参数?我在库中有以下功能,我无法更改(简化):
def g(a,b=2):
print a,b
def f(arg):
g(arg)
我能做到
o={'a':10,'b':20}
g(**o)
10 20
但我可以/如何通过f
传递此内容?
这就是我不想要的:
f(**o)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: f() got an unexpected keyword argument 'a'
f(o)
{'a': 10, 'b': 20} 2
答案 0 :(得分:2)
f
必须接受任意(位置和)关键字参数:
def f(*args, **kwargs):
g(*args, **kwargs)
如果您不希望f
接受位置参数,请忽略*args
部分。