如何生成一个 `kwargs` 列表?

19

我从外部文件生成了以下字典:

mydict = { 'foo' : 123, 'bar' : 456 }

如果有一个函数接受 **kwargs 参数,如何从该字典生成关键字参数?

1个回答

39
def foo(**kwargs):
    pass

foo(**{ 'foo' : 123, 'bar' : 456 })

2
或者,如果函数仅接受 kwargs,并且 mydict 包含所有参数,则省略所有 * - agf
@agf 那我可以直接传递字典吗?如果函数接受 (self, **kwargs),我可以这样做 obj.func(mydict) 吗? - Paul Manta
1
@Paul 不行 - 只有你重写成(self, kwargs)才可以。 - agf
@agf:那根本不是一回事。 - Falmarri
如果他正在编写 foo,他可以从一个字典中获取参数的字典,而不使用关键字参数——我曾见过一个初学者认为必须使用关键字参数来传递一个字典。 - agf
非常感谢。这帮助我调整了我的web.py数据库使用:插入和更新。现在,我不再在方法调用中列出所有参数,而是构建一个包含所需值的字典,并将其传递给这些方法(接受**kwargs)。 - Timo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接