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