python lambda 函式處理異常

2021-08-20 20:08:18 字數 785 閱讀 8350

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...