在python里面,我們用def來定義一個(gè)函數(shù),比如:
def double(x):除了以上的凡是定義函數(shù),Python還支持了另一種函數(shù)的定義法,lambda,可以讓我們創(chuàng)建一個(gè)匿名函數(shù),也就是沒有名稱的函數(shù)。它的形式如下:
lambda 參數(shù):表達(dá)式注意lambda函數(shù)沒有return關(guān)鍵字。那我們把上面的函數(shù)改寫一下:
lambda x:2*x那如何調(diào)用呢?可以這樣使用:
(lambda x:2*x)(8)由于匿名函數(shù)本質(zhì)上是一個(gè)函數(shù)的對(duì)象,也可以將其賦值給另一個(gè)變量,在用該變量來調(diào)用函數(shù):
f=lambda x:2*x上面的直接使用,不做演示了。
存在即合理,所以匿名函數(shù)的使用場(chǎng)景是什么?匿名函數(shù)一般創(chuàng)建一個(gè)臨時(shí)性的,小巧的函數(shù),比如上面的double函數(shù),當(dāng)然我們用def也是可以的,但是用lanbda函數(shù)的話起來和簡(jiǎn)潔。尤其是是在高階函數(shù)的使用中。記住一點(diǎn)就是函數(shù)就一行的時(shí)候就考慮用匿名函數(shù),以及這個(gè)函數(shù)在程序的上下文里面出現(xiàn)的頻率很小的時(shí)候。
那我們就考慮用匿名函數(shù)。
1.匿名函數(shù)本質(zhì)上是一個(gè)函數(shù),沒有函數(shù)名稱,因此使用的時(shí)候不用考慮函數(shù)名的沖突。
2.匿名函數(shù)的使用場(chǎng)景是臨時(shí)性的,小巧的,頻率低的~
聯(lián)系客服