當我們在創建函數時,有些時候,不需要顯式地定義函數,直接傳入匿名函數更方便。這省去了我們挖空心思為函數命名的麻煩,也能少寫不少代碼,很多編程語言都提供這一特性。匿名函數用好了,會有畫龍點睛的效果,沒用好,就容易“畫虎不成反類犬”,需要我們在平時的代碼過程中,多學、多看、多琢磨。
python語言使用lambda關鍵字來創建匿名函數。
所謂匿名,即不再使用def語句這樣標準的形式定義一個函數。
lambda只是一個表達式,而不是一個代碼塊,函數體比def簡單很多。僅僅能在lambda表達式中封裝有限的邏輯。lambda函數擁有自己的命名空間。
其形式通常是這樣的:lambda參數:表達式。
例如:lambdax:x*x。它相當于下面的函數:
deff(x):
returnx*x
關鍵字lambda表示匿名函數,冒號前面的x表示函數參數,x*x是執行代碼。
匿名函數只能有一個表達式,不用也不能寫return語句,表達式的結果就是其返回值。匿名函數沒有函數名字,不必擔心函數名沖突,節省字義空間。此外,匿名函數也是一個函數對象,也可以把匿名函數賦值給一個變量,再利用變量來調用該函數:
>>>f=lambdax:x*x
>>>f
at0x3216fef44>
>>>f(6)
36
也可以把匿名函數作為別的函數的返回值返回。
defadd(string,i):
returnlambda:int(string)+i
以上內容為大家介紹了python培訓之什么是匿名函數,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。