Lambda函數是python中一種快速定義單行的最小函數,能夠用在任何須要函數的地方 。它只是一個表達式,函數體比def簡單不少。主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。lambda函數擁有本身的命名空間,且不能訪問自有參數列表以外或全局命名空間裏的參數。下面的例子比較了傳統的函數定義def與lambda定義方式:python
普通def函數定義:函數
def sum(x, y): return x + y print(sum(4,6))
運行結果:spa
10
lambda表達式定義:it
p = lambda x,y:x+y print(p(4,6))
運行結果:class
10
能夠看到,兩個函數獲得的結果同樣,而對於實現簡單功能的函數來講,使用lambda函數來定義更加精簡靈活,還能夠直接把函數賦值給一個變量,用變量名來表示函數名。變量
使用lambda函數還有一些注意事項: lambda 函數能夠接收任意多個參數 (包括可選參數) 而且返回單個表達式的值。 lambda 函數不能包含命令,包含的表達式不能超過一個。lambda
傳入一個參數的lambda表達式:命名空間
a = lambda x: x * x print(a(3))
運行結果:命名
9
多個參數的lambda表達式:word
a = lambda x, y, z: (x + 8) * y - z print(a(5, 6, 8))
運行結果:
70
lambda表達式也能夠嵌入def函數中進行使用:
def func(n): return lambda s: s * n result = func(2) print(result('word')) print(result(5))
運行結果:
wordword
10本文轉載:https://www.myblou.com/archives/145