将字典传递给构造函数?

17
我想将字典作为关键字参数传递给对象的构造函数。

很明显:

foo = SomeClass(mydict)

这个函数只接受单个参数,而不是整个字典的内容。但是:

foo = SomeClass(kwargs=mydict)

似乎更有道理的方法也不起作用。我错过了什么吗?

3个回答

33

使用:

foo = SomeClass(**mydict)
这将解包字典值并将它们传递给函数。
例如:
mydict = {'a': 1, 'b': 2}

SomeClass(**mydict) # Equivalent to : SomeClass(a=1, b=2)

2
来自未来的问候!很抱歉花了四年时间才将此答案标记为已接受 :^) - mikemaccana

3
要将字典传递给构造函数,您需要通过引用来实现,即在其前面加上**,如下所示:
foo = SomeClass(**mydict)

1
试试这个: SomeClass(**mydict)

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