在以下的文章之中我們來了解什麼是python匿名函數。了解一下關於python匿名函數的知識,以及python匿名函數的好處。好了,廢話不多說,我們開始進入接下來的文章吧。
匿名函數
python 使用 lambda 來建立匿名函數。
lambda只是一個表達式,函數體比def簡單很多。
lambda的主體是一個表達式,而不是一個程式碼區塊。僅能在lambda表達式中封裝有限的邏輯進去。
lambda函數擁有自己的命名空間,且不能存取自有參數清單以外或全域命名空間裡的參數。
雖然lambda函數看起來只能寫一行,卻不等同於C或C 的內聯函數,後者的目的是當呼叫小函數時不會佔用堆疊記憶體從而增加運作效率。
當我們在傳入函數時,有些時候,不需要明確地定義函數,直接傳入匿名函數會更方便。
在Python中,對匿名函數提供了有限支援。還是以map()函數為例,計算f(x)=x2時,除了定義一個f(x)的函數外,還可以直接傳入匿名函數:
>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))[1, 4, 9, 16, 25, 36, 49, 64, 81]
透過對比可以看出,匿名函數lambda x: x * x其實就是:
def f(x): return x * x
關鍵字lambda表示匿名函數,冒號前面的x表示函數參數。
匿名函數有個限制,就是只能有一個表達式,不用寫return,回傳值就是該表達式的結果。
用匿名函數有個好處,因為函數沒有名字,所以不必擔心函數名稱衝突。此外,匿名函數也是函數對象,也可以把匿名函數賦值給一個變量,再利用變數來呼叫該函數:
>>> f = lambda x: x * x >>> f <function <lambda> at 0x101c6ef28> >>> f(5)25
以上就是本篇文章所講述的所有內容,這篇文章主要介紹了相關於python匿名函數的知識,希望你能藉助資料從而理解上述所說的內容。希望我在這片文章所講述的內容能夠對你有幫助,讓你學習python更加輕鬆。
更多相關知識,請造訪php中文網Python教學欄位。
>
以上是python匿名函數定義及實例解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!