lambda只是一個表達式,函數體比def簡單不少。 lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。 lambda表達式是起到一個函數速寫的做用。容許在代碼內嵌入一個函數的定義。 lambda x,y : x+y 能夠這樣理解(x,y 是參數;x+y 是return回來的值)函數
例如: 定義了一個lambda表達式,求三個數的和。io
f = lambda x,y,z : x+y+z f(1,2,3) 6lambda
用lambda表達式求n的階乘。block
n = 5 reduce(lambda x,y : x*y, range(1,1+n)) 120return
lambda表達式也能夠用在def函數中。參數
def action(x): return lambda y : x+y a = action(2) a(22) 24 這裏定義了一個action函數,函數返回值是一個lambda表達式封裝
這裏也能夠把def直接寫成lambda形式。以下
b = lambda x : lambda y : x+y a = b(3) a(2) 5