Python中的匿名函式-lambda

pythontab發表於2013-12-11

簡述

除了def語句之外,Python還提供了一種生成函式物件的表示式形式。這個表示式建立了一個之後能夠呼叫的函式,但是它返回了一個函式而不是將這個函式賦值給一個變數名稱。 

lambda表示式

lambda的一般形式是關鍵字lambda,之後是一個或者多個引數,緊跟的是一個冒號,之後是一個表示式: lambda argument1 argument2 ... :expression using arguments

lambda是一個表示式,而不是一個語句。

作為一個表示式,lambda返回了一個值,可以選擇性地賦值給一個變數名。相反,def語句總是得在頭部將一個新的函式賦值給一個變數名,而不是將這個函式作為結果返回。

lambda主體是一個單一的表示式,而不是一個程式碼塊。

預設引數也能夠在lambda引數中使用,就像在def中使用一樣。

>>>x = (lambda a = "www.", b = "pythontab", c = ".com": a + b +c)
>>>x("bbs.")
'bbs.pythontab.com'

為什麼使用lambda

1. 使用Python寫一些執行指令碼時,使用lambda可以省去定義函式的過程,讓程式碼更加精簡。 

2. 對於一些抽象的,不會別的地方再複用的函式,有時候給函式起個名字也是個難題,使用lambda不需要考慮命名的問題。 

3. 使用lambda在某些時候讓程式碼更容易理解。

相關文章