7.3 匿名函數(shù)
當(dāng)我們?cè)趥魅牒瘮?shù)時(shí),有些時(shí)候,不需要顯式地定義函數(shù),直接傳入匿名函數(shù)更方便。
在Python中,對(duì)匿名函數(shù)提供了有限支持。還是以map()
函數(shù)為例,計(jì)算f(x)=x2時(shí),除了定義一個(gè)f(x)
的函數(shù)外,還可以直接傳入匿名函數(shù):
通過(guò)對(duì)比可以看出,匿名函數(shù)lambda x: x * x
實(shí)際上就是:
關(guān)鍵字lambda
表示匿名函數(shù),冒號(hào)前面的x
表示函數(shù)參數(shù)。
匿名函數(shù)有個(gè)限制,就是只能有一個(gè)表達(dá)式,不用寫return
,返回值就是該表達(dá)式的結(jié)果。
用匿名函數(shù)有個(gè)好處,因?yàn)楹瘮?shù)沒(méi)有名字,不必?fù)?dān)心函數(shù)名沖突。此外,匿名函數(shù)也是一個(gè)函數(shù)對(duì)象,也可以把匿名函數(shù)賦值給一個(gè)變量,再利用變量來(lái)調(diào)用該函數(shù):
同樣,也可以把匿名函數(shù)作為返回值返回,比如:
小結(jié)
Python對(duì)匿名函數(shù)的支持有限,只有一些簡(jiǎn)單的情況下可以使用匿名函數(shù)。
標(biāo)簽: