在開發(fā)當(dāng)中,一次使用的函數(shù)或者是我們不想命名的函數(shù),我們可以寫成 匿名函數(shù) 。這篇博客來分享一下 Python 匿名函數(shù) 。
在乾安等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,乾安網(wǎng)站建設(shè)費(fèi)用合理。
匿名函數(shù)是通過 lambda 關(guān)鍵字創(chuàng)建,而不是 def 關(guān)鍵字。
匿名函數(shù) 簡單的需要用函數(shù)去解決的問題 匿名函數(shù)的函數(shù)體 只有一行 也叫l(wèi)ambda表達(dá)式
python 使用 lambda 來創(chuàng)建匿名函數(shù)。
lambda函數(shù)的語法只包含一個(gè)語句,如下:
等價(jià)于
當(dāng)我們?cè)趥魅牒瘮?shù)時(shí),有些時(shí)候,不需要顯式地定義函數(shù),直接傳入匿名函數(shù)更方便。
在Python中,對(duì)匿名函數(shù)提供了有限支持。還是以map()函數(shù)為例,計(jì)算f(x)=x2時(shí),除了定義一個(gè)f(x)的函數(shù)外,還可以直接傳入匿名函數(shù):
map(lambda?x:?x?*?x,?[1,?2,?3,?4,?5,?6,?7,?8,?9])
[1,?4,?9,?16,?25,?36,?49,?64,?81]
通過對(duì)比可以看出,匿名函數(shù)lambda x: x * x實(shí)際上就是:
def?f(x):
return?x?*?x
關(guān)鍵字lambda表示匿名函數(shù),冒號(hào)前面的x表示函數(shù)參數(shù)。
匿名函數(shù)有個(gè)限制,就是只能有一個(gè)表達(dá)式,不用寫return,返回值就是該表達(dá)式的結(jié)果。
用匿名函數(shù)有個(gè)好處,因?yàn)楹瘮?shù)沒有名字,不必?fù)?dān)心函數(shù)名沖突。此外,匿名函數(shù)也是一個(gè)函數(shù)對(duì)象,也可以把匿名函數(shù)賦值給一個(gè)變量,再利用變量來調(diào)用該函數(shù):
f?=?lambda?x:?x?*?x
f
function?lambda?at?0x10453d7d0
f(5)
25
同樣,也可以把匿名函數(shù)作為返回值返回,比如:
def?build(x,?y):
return?lambda:?x?*?x?+?y?*?y
小結(jié)
Python對(duì)匿名函數(shù)的支持有限,只有一些簡單的情況下可以使用匿名函數(shù)。
希望能幫到你!