在Python中,能否以類似於以下JavaScript示例的方式定義一個函數(可以包含語句,因此不是lambda表達式)?能否像JavaScript一樣定義函數?
var func = function(param1, param2) {
return param1*param2;
};
我問,因爲我想擁有的功能的字典,我不想先定義所有的功能,然後把它們放在一本字典。
我想要一個函數字典的原因是因爲我將另一個函數接受另一個字典作爲參數,通過它的鍵循環,並且如果它在第一個字典中找到一個匹配鍵,則用值調用相關的函數第二個字典作爲參數。像這樣:
def process_dict(d):
for k, v in d.items():
if k in function_dict:
function_dict[k](v)
也許還有更多pythonic的方式來完成這樣的事情?
你的功能有多複雜?你的javascript例子可以用python中的lambda來表示:'lambda p1,p2:p1 * p2' –
所以你需要在表達式(字典文字/構造函數)中使用語句嗎?這在Python中是不可能的。 – zch
@zch不,我只是從一個空字典開始,然後在javascript例子中做變量賦值,除了左邊是'function_dict [「key」]'。 –