python中匿名函數(shù)的應(yīng)用方法
前言
在Python中有兩種函數(shù):
1、普通函數(shù)def 定義
2、匿名函數(shù)lambda 聲明
一、匿名函數(shù)
匿名函數(shù)是無需使用def定義的函數(shù),只需使用關(guān)鍵字lambda進行聲明,且只可使用一次,只有一個返回值
二、匿名函數(shù)格式
使用lambda表達式創(chuàng)建匿名函數(shù),其語法格式如下:
res = lambda[arg1[,arg2,...,argn]]:expression
參數(shù)說明:
- res:用于調(diào)用lambda表達式
- [arg1[,arg2,…,argn]]:可選參數(shù),用于指定要傳遞的參數(shù)列表,多個參數(shù)使用逗號“,”分隔
- expression:必選參數(shù),用于指定一個實現(xiàn)具體功能的表達式,如果有參數(shù),那么在該表達式中將應(yīng)用這些參數(shù)
注意:使用lambda表達式時,參數(shù)可以有多個,用逗號“,”分隔,但是表達式只能有一個,即只能返回一個值
三、匿名函數(shù)應(yīng)用
1、匿名函數(shù)示例:
res = lambda x,y:x*y print(res(5,7))
說明: lambda x, y是匿名函數(shù)的聲明部分,而 x * y則是匿名函數(shù)的實現(xiàn)部分
2、普通函數(shù)示例:
def caculate(x, y): return x * y print(caculate(5,7))
四、匿名函數(shù)與普通函數(shù)
既然匿名函數(shù)那么簡潔方便,那是不是匿名函數(shù)能直接代替普通函數(shù)呢?
答案是否定的,可以比較下他們之間的區(qū)別:
1、普通函數(shù)使用def聲明函數(shù),且需要定義函數(shù)名;匿名函數(shù)則無需定義函數(shù)名,使用lambda關(guān)鍵字即可
2、普通函數(shù)可以有多條語句;匿名函數(shù)只能有一個表達式
3、普通函數(shù)可以用于實現(xiàn)復(fù)雜的功能邏輯處理;而匿名函數(shù)一般用于實現(xiàn)一些簡單的功能
4、函數(shù)被多次調(diào)用則使用普通函數(shù);單次調(diào)用使用匿名函數(shù)
到此這篇關(guān)于python中匿名函數(shù)的應(yīng)用方法的文章就介紹到這了,更多相關(guān)python匿名函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Python如何精確控制asyncio并發(fā)運行多個任務(wù)
這篇文章主要為大家詳細介紹了Python如何精確控制asyncio并發(fā)運行多個任務(wù),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-10-10Python和Matlab實現(xiàn)蝙蝠算法的示例代碼
蝙蝠算法是一種搜索全局最優(yōu)解的有效方法,本文主要介紹了Python和Matlab實現(xiàn)蝙蝠算法的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03