python之lambda函數

來源:互聯網
上載者:User

標籤:operation   疑惑   idt   注意   lambda   fun   賦值   lam   圖片   

今天複習python,看見一個關於lambda函數的例子,在python中使用lambda在某些時候十分方便,因為不必為了實現某些簡易功能而建立一個函數。但是有這麼一個lambda執行個體令我有些疑惑,現將其貼出來並推測其功用,如有錯誤,還請指正!

1 def func(a,b,operation):2     print("a = %d"%a)3     print("b = %d"%b)4     print("result =",operation(a,b))5 func(11,22,lambda x, y:x + y)6 print("------------------------")7 func(11,22,lambda x, y : x - y)

運行結果:

可見:通過向func()函數傳遞了三個參數,依次是:11,22,lambda函數,也就是說將  lambda x, y: x + y 賦值給operation,那麼operation = lambda x, y : x + y。在func()函數中的第三條語句print("result=",operation)中調用了operation,也就相當於把lambda函數填入代替這個operation,  operation括弧內兩個值賦給lambda的x和y,通過lambda函數實現a和b的相加運算,也就是11 + 22。

在這裡operation = lambda x, y : x + y,  operation相當於調用lambda函數的執行個體名,為函數執行個體賦值相當於為lambda函數傳值,lambda的運算式的結果類似於return 運算式 ,只是lambda函數無需return就能將運算式的值傳回調用處,這個函數樣本是使用operation執行個體變數來調用lambda函數,那麼lambda運算式的值將返回給operation(),注意,不是返回給operation變數!!!operation類似於一個匿名函數的函數名,輸出函數名不能得到返回的值,只用使用函數名()來輸出結果。

func = lambda x : x + 2print(func)print(func(3))

 

 

可見,此處的func相當於lambda的函數名,儘管lambda是匿名函數,但是調用這個匿名函數需要一個執行個體,這個func就是他的執行個體。

但是,匿名函數本來就不需要一個函數名,此處的使用純屬多此一舉,在python編程的使用中不多見。

 

python之lambda函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.