将字典传递给构造函数?

18 投票
3 回答
11282 浏览
提问于 2025-04-16 13:58

我想把一个字典传给一个对象的构造函数,用作关键字参数(kwargs)。

很明显:

foo = SomeClass(mydict)

这样做只是传递了一个单独的参数,而不是字典里的内容。不过:

foo = SomeClass(kwargs=mydict)

看起来更合理的做法也不行。我到底漏掉了什么呢?

3 个回答

1

试试这个方法:SomeClass(**mydict)

3

要把一个字典传给构造函数,你需要通过引用来传递,也就是说要在字典前面加上**,像这样:

foo = SomeClass(**mydict)
33

使用:

foo = SomeClass(**mydict)

这段代码会把字典里的值提取出来,然后传递给函数。

比如说:

mydict = {'a': 1, 'b': 2}

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

撰写回答