簡述
除了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在某些時候讓程式碼更容易理解。