2011-03-18 148 views
14

我想將一個字典傳遞給對象的構造函數以用作kwargs。傳遞字典給構造函數?

很明顯:

foo = SomeClass(mydict) 

只是簡單地傳遞一個參數,而不是字典的內容。唉:

foo = SomeClass(kwargs=mydict) 

這似乎更合理也不起作用。我錯過了什麼?

回答

26

用途:

foo = SomeClass(**mydict) 

這將解開字典值,並將其傳遞給函數。

例如:

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

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

更多信息:HTTP ://docs.python.org/tutorial/controlflow.html#keyword-arguments – tokland 2011-03-18 16:57:31

+0

來自未來的問候!對不起,用了四年的時間來記錄這個答案:^) – mikemaccana 2015-04-28 15:55:20

1

試試這個: SomeClass(**mydict)

2

要通過字典來你必須通過引用這樣做的一個構造函數,它是用**它前面,就像這樣:

foo = SomeClass(**mydict)