python 使用lambda 函式非常方便, 但是有時由於自變數資料型別不對, lambda 函式會出現異常。
例如:
f = lambda x:x[0]
如果輸入:
f(1)
就會報錯。
typeerror: 'int' object has no attribute '__getitem__'與python 函式一樣, 我們可以採用try 和 except 處理。
try:
print f(1)
except:
print 'erro, but we fixed it:'
print f([1])
處理異常的好處是對於任意輸入, 我們總能得到輸出, 而不至於被中斷。
我們甚至可以把lamda函式 正常執行的** 和 處理異常的**,通過string傳參給另外乙個函式中exec 執行, 如下:
def getlambda(x, exec_str, ep_str):
val = 0
try:
exec(exec_str)
except:
exec(ep_str)
return val
f = lambda x:getlambda(x, "val = x[0]", "val = x")
然後執行:
f(1)
這樣直接執行f 就不會報錯。
python lambda函式基礎
本文,我們學習python lambda函式。首先,看一下python lambda函式的語法,如下 f lambda parameter1,parameter2,expression lambda語句中,冒號前是引數,可以有0個或多個,用逗號隔開,冒號右邊是返回值。lambda語句構建的其實是乙個...
python lambda匿名函式
lambda定義乙個匿名函式 lambda只是乙個表示式,函式體比def簡單很多,很多時候定義def,然後寫乙個函式太麻煩,這時候就可以用lambda定義乙個匿名函式。lambda的主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。參考鏈結 lambda的特性 乙個語...
python lambda 匿名函式
語法 lambda 引數 表示式 接受引數,執行表示式,返回結果 示例 乙個lambda函式,把引數加10,然後返回結果 x lambda a a 10print x 5 lambda函式可以接受任意數量的引數 示例 乙個lambda函式,將引數a與引數b相乘,然後返回結果 x lambda a,b...