2017-07-18 230 views

回答

8

函數調用中的參數必須是標識符,而不是字符串常量。

出於同樣的原因,你可以不寫:

"a" = 1 

你也不能調用一個函數

dict("a"=5) 

而是寫:

a = 5 
dict(a=5) 

如果您需要從字符串常量創建字典,使用字面語法:

{"a": 5, "b": 17} 

如果你需要使用的變量名,調用函數的字符串,語法是有點怪:

func(**{"a": 5}) # more or less equivalent to func(a=5) 

但要注意的是,.update函數可以調用這種方式開始:

d.update(a=1, b=2) 
2

A 參數必須是標識符a是一個標識符。 'a'不是,它是一個字符串文字(它是表達式的一種形式)。

在Python中,您可以使用兩個星號來傳遞一個名爲的名稱爲參數的字典。所以:

d.update(**{'a': 1, 'b': 2}) 

會工作。但對於這樣的字典,這當然是無用的。但是,您可以在運行時構造字典d2,然後調用somefunc(**d2)d2的鍵作爲參數名稱,並將相應的值作爲與這些參數名稱關聯的值調用函數。

+0

...但用字典這樣做會是單一的毫無意義。 –

+0

@DanielRoseman:當然。我爲一個更有用的用例添加了一個簡短的描述。 –

相關問題