匿名函數


print(lambda x: x * 2)

# <function <lambda> at 0x00000000005D3E18>
# 輸出爲內存地址,爲了能夠執行,須要賦值給一個變量,再在後面加個括號
func = lambda x: x * 2
print(func(10))

# 或許能夠簡化以下。。。
print((lambda x: x * 2)(10))

# 多個返回值時,要用括號括起來
func = lambda x, y, z: (x + 1, y + 1, z + 1)
print(func(1, 2, 3))

---------------------------------------------

lambda是一個表達式,而並不是語句

由於lambda是一個表達式,因此在python語言中能夠出如今def語句所不能出現的位置上;
lambda與def語句相比較,後者必須在一開始就要將新函數命名;而前者返回一個新函數,能夠有選擇性的賦值變量名。python

lambda主體只是單個表達式,並而一個代碼塊

lambda與普通函數function定義方法來比較它的功能更小,它只是一個爲簡單函數所服務的對象,而def能處理更大型的數據任務。函數

爲何要使用lambda?

用python學習手冊中的一段話來回答這個問題很是好「lambda有起到速寫函數的做用,容許在使用的代碼內嵌入一個函數的定義。在僅須要嵌入一小段可執行代碼的狀況 下,就能夠帶來更簡潔的代碼結構。」lambda的使用在python基礎知識學習中就會遇到,但真正應用時仍是在python進階的階段,這時須要你作更深刻學習。學習

相關文章
相關標籤/搜索