南京正厚軟件技術培訓學校

7x24小時咨詢熱線

400-660-3310

當前位置 : 好學校 南京正厚軟件技術培訓學校 學習資訊 資訊詳情

Python匿名函數lambda的使用

2021-12-27

一、匿名函數介紹

在Python中,不通過def來聲明函數名字,而是通過lambda關鍵字來定義的函數稱為匿名函數。

lambda函數能接收任何數量(可以是0個)的參數,但只能返回一個表達式的值,lambda函數是一個函數對象,直接賦值給一個變量,這個變量就成了一個函數對象。

語法:lambda 參數:表達式

先寫lambda關鍵字,然后依次寫匿名函數的參數,多個參數中間用逗號連接,然后是一個冒號,冒號后面寫返回的表達式。

使用lambda函數可以省去函數的定義,不需要聲明一個函數然后使用,而可以在寫函數的同時直接使用函數。

使用場景:

1.需要將一個函數對象作為參數來傳遞時,可以直接定義一個lambda函數(作為函數的參數或返回值)

2.要處理的業(yè)務符合lambda函數的情況(任意多個參數和一個返回值),并且只有一個地方會使用這個函數,不會在其他地方重用,可以使用lambda函數

3.與一些Python的內置函數配合使用,提高代碼的可讀性

代碼

二、匿名函數與普通函數的對比

可以看到,lambda適用于多個參數、一個返回值的情況,可以用一個變量來接收,變量是一個函數對象,執(zhí)行這個函數對象的結果與執(zhí)行一個普通函數的結果一樣。

lambda函數比普通函數更簡潔,且沒有聲明函數名,上面的代碼是用一個變量來接收lambda函數返回的函數對象,并不是lambda函數的名字。

三、匿名函數的多種形式

匿名函數

可以看到,lambda的參數可以0個到多個,并且返回的表達式可以是一個復雜的表達式,只要值是一個值就行了。

四、lambda作為一個參數傳遞

lambda

上面的代碼中,sub中需要傳入一個函數,然后這個函數在sub里面執(zhí)行,這時候我們就可以使用lambda函數,因為lambda就是一個函數對象。

五、lambda作為函數的返回值

函數的返回值

匿名函數可以作為一個函數的返回值,在上面的代碼中,run返回的是一個匿名函數,返回的是一個函數對象,當我們執(zhí)行這個函數時,可以得到lambda函數的結果。

注意:其中的a,b兩個參數是run中的參數,但我們執(zhí)行返回的函數run_a時,已經不在run的作用域內了,而lambda函數仍然能使用a,b參數。說明lambda函數會將它的運行環(huán)境保存一份,一直保留到它自己執(zhí)行的時候使用。

收藏
分享到:

相關課程

相關資訊

南京正厚軟件技術培訓學校

南京正厚軟件技術培訓學校

認證等級

信譽良好,可安心報讀

南京正厚軟件技術培訓學校

已獲好學校V2信譽等級認證

信譽值

  • (60-80)基礎信譽積累,可放心報讀
  • (81-90)良好信譽積累,可持續(xù)信賴
  • (91-100)充分信譽積累,推薦報讀

與好學校簽訂讀書保障協(xié)議:

  • 100%
  • 65
  • 12385
在線咨詢
;