我對python比較陌生,我想知道是否可以將一個函數傳遞給另一個函數。我有一些功能,基本上做同樣這樣想:如何將一個函數傳遞給另一個python
if(#some condition):
#do something
else:
#do something else
我想要做的是這樣的:
def generic_func(self, x, y):
if #somecondition:
#do function x
else:
#do function y
def calls_generic_func(self, key, value):
lambda x: self.list[-1].set(key,value)
lambda y: self.d.set(key,value)
self.generic_func(x,y)
可惜,這似乎並沒有因爲當我打電話self.generic_fun(x,y)
我的工作得到一個錯誤,說全球名稱x
未定義。有任何想法嗎?
可能重複的[與參數傳遞函數在Python另一個函數?](http://stackoverflow.com/questions/803616/passing-functions-with-arguments-to-another-function-in- python) – Paul 2014-11-01 02:23:55
在'calls_generic_func'中,一行中的lambda表達式就像這樣簡單地被丟棄。它沒有定義x或y,這可能是爲什麼'self.generic_func(x,y)'失敗。 'fun = lambda x:x * x'等價於'def fun(x):(新的縮進行)return x * x'基本上'lambda'允許你內聯寫一行函數,因爲'def'不允許你這樣做(不像javascript的'function()') – Paul 2014-11-01 02:29:28