在 python 中,函數反映了程式語言的擴充套件能力,有人認為函數是 Python 語言的靈魂,上節教學我們已經介紹了使用 def 關鍵字定義的函數,本節主要介紹 Python 函數中的匿名函數。
匿名函數即沒有函數名的函數,常被用在以下場合:
-
在程式中只使用一次,不需要定義函數名,節省記憶體中變數定義空間;
-
編寫 Shell 指令碼時使用匿名函數可以省去定義函數的過程,讓程式碼更加簡潔;
-
某些時候為了讓程式碼更容易理解;
-
Python 中使用 lambda 關鍵字建立匿名函數。
Python 的匿名函數有以下特點:
-
匿名函數只是一個表示式,僅能封裝有限的邏輯;
-
匿名函數擁有自己的名稱空間,且不能存取自己參數列之外或全域性名稱空間裡的引數;
-
匿名函數看起來只能寫一行,卻不等同於 C 或 C++ 的行內函式,後者的目的是呼叫小函數時不佔用棧記憶體從而增加執行效率。
定義匿名函數的語法如下:
lambda 引數1, 引數2,......, 引數n:表示式
一些簡單的運算可以很容易被改寫為匿名函數,例如計算長方形面積的函數:
area = lambda width, height: width * height
print (area(3, 4))
上述程式碼的執行結果如下所示:
>>> area = lambda width, height: width * height
>>> print (area(3, 4))
12