簡述
除了def語句之外,Python也提供了一種產生函數物件的表達式形式。這個表達式創建了一個之後能夠呼叫的函數,但是它傳回了一個函數而不是將這個函數賦值給一個變數名稱。
lambda表達式
lambda的一般形式是關鍵字lambda,之後是一個或多個參數,緊接的是一個冒號,之後是一個表達式: lambda argument1 argument2 ... :expression using arguments
是一個表達式,而不是一個語句。 作為一個表達式,lambda回傳了一個值,可以選擇性地賦值給一個變數名。相反,def語句總是得在頭部將一個新的函數賦值給一個變數名,而不是將這個函數作為結果傳回。 lambda主體是一個單一的表達式,而不是一個程式碼區塊。 預設參數也能夠在lambda參數中使用,就像在def中使用一樣。 >>>x = (lambda a = "www.", b = "pythontab", c = ".com": a + b +c)>>>x("bbs")'bbs .pythontab.com'為什麼使用lambda1. 使用Python寫一些執行腳本時,使用lambda可以省去定義函數的過程,讓程式碼更加精簡。 2. 對於一些抽象的,不會別的地方再復用的函數,有時候給函數起個名字也是個難題,使用lambda不需要考慮命名的問題。 3. 使用lambda在某些時候讓程式碼更容易理解。