Python 包参数?
是否可以在 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
is to possible to "pack" arguments in python? I have the following functions in the library, that I can't change (simplified):
def g(a,b=2):
print a,b
def f(arg):
g(arg)
I can do
o={'a':10,'b':20}
g(**o)
10 20
but can I/how do I pass this through f
?
That's what I don't want:
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
f
必须接受任意(位置和)关键字参数:如果您不希望
f
接受位置参数,请省略*args
部分。f
has to accept arbitrary (positional and) keyword arguments:If you don't want
f
to accept positional arguments, leave out the*args
part.