python匿名函數的使用
匿名函數(英語:anonymous function)是指一類無需定義標識符(函數名)的函數。通俗來說呢,就是它可以讓我們的函數,可以不需要函數名。
正常情況下,我們定義一個函數,使用的是 def 關鍵字,而當你學會使用匿名函數后,替代 def 的是 lambda。
這邊使用def 和 lambda 分別舉個例子,你很快就能理解。
def mySum(x, y):
return x+y
mySum(2, 3)
# 5
(lambda x, y: x+y)(2, 4)
# 6
從上面的示例,我們可以看到匿名函數直接運行,省下了很多行的代碼,有沒有?
接下來,我們的仔細看一下它的用法
帶 if/else
>>>( lambda x, y: x if x < y else y )( 1, 2 )
1
嵌套函數
>>>( lambda x: ( lambda y: ( lambda z: x + y + z )( 1 ) )( 2 ) )( 3 )
6
遞歸函數
>>> func = lambda n:1 if n == 0 else n * func(n-1)
>>> func(5)
120
或者
>>> f = lambda func, n: 1 if n == 0 else n * func( func, n - 1 )
>>> f(f,4)
24
從以上示例來看,lambda 表達式和常規的函數相比,寫法比較怪異,可讀性相對較差。除了可以直接運行之外,好像并沒有其他較為突出的功能,為什么在今天我們要介紹它呢?
首先我們要知道 lambda 是一個表達式,而不是一個語句。正因為這個特點,我們可以在一些特殊的場景中去使用它。
審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
函數
+關注
關注
3文章
4417瀏覽量
67499 -
python
+關注
關注
57文章
4876瀏覽量
90022
發布評論請先 登錄
相關推薦
熱點推薦
沒有專利的opencv-python 版本
所有 官方發布的 opencv-python 核心版本(無 contrib 擴展)都無專利風險——專利問題僅存在于 opencv-contrib-python 擴展模塊中的少數算法(如早期 SIFT
發表于 12-13 12:37
為什么不建議用匿名結構體
說起匿名結構體,想必大家第一感覺就是看著好高大上的名字,但實際上也就那樣。
typedef struct {
union {
struct {
uint8_t bit_0:1
發表于 12-04 07:39
termux調試python猜數字游戲
用termux做一個猜數字游戲
下面是在Termux中創建猜數字游戲的步驟及完整實現方案,結合Python實現(最適配Termux環境):
? 一、環境準備(Termux基礎配置)
1.
發表于 08-29 17:15
termux如何搭建python游戲
termux如何搭建python游戲
Termux搭建Python游戲開發環境的完整指南
一、Termux基礎環境準備
Termux是一款無需root即可在安卓設備上運行的Linux終端
發表于 08-29 07:06
在Python中字符串逆序有幾種方式,代碼是什么
對于一個給定的字符串,逆序輸出,這個任務對于python來說是一種很簡單的操作,畢竟強大的列表和字符串處理的一些列函數足以應付這些問題 了,今天總結了一下python中對于字符串的逆序輸出的幾種常用
python app不能運行怎么解決?
;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
發表于 08-06 06:27
詳解hal_entry入口函數
當使用RTOS時,程序從main函數開始進行線程調度;當沒有使用RTOS時,C語言程序的入口函數main函數調用了hal_entry函數。由于我們新建的工程是沒有選用RTOS的,因此,
解鎖LuatOS新世界:二次開發必備的3個核心常識
來了解LuatOS開發需要熟悉的幾個常識。 ? 一、匿名函數 在Lua代碼里面,經常看到沒有名字的函數。 這種函數定義之后,要么馬上運行,要么作為另一個
HarmonyOS5云服務技術分享--匿名登錄功能指南
匿名登錄?
想象一下新用戶第一次打開你的應用,繁瑣的注冊流程可能會勸退不少人。匿名登錄就像給用戶一張「臨時通行證」,既能保留基礎用戶數據,又能大幅降低使用門檻,有效提升用戶留存率~
?? 集成指南(5步
發表于 05-22 16:41
?如何在虛擬環境中使用 Python,提升你的開發體驗~
RaspberryPiOS預裝了Python,你需要使用其虛擬環境來安裝包。今天出版的最新一期《TheMagPi》雜志刊登了我們文檔負責人NateContino撰寫的一篇實用教程,幫助你入門
零基礎入門:如何在樹莓派上編寫和運行Python程序?
在這篇文章中,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運行一個簡單的Python程序。什么是Python程序?
Python在嵌入式系統中的應用場景
你想把你的職業生涯提升到一個新的水平?Python在嵌入式系統中正在成為一股不可缺少的新力量。盡管傳統上嵌入式開發更多地依賴于C和C++語言,Python的優勢在于其簡潔的語法、豐富的庫和快速的開發周期,這使得它在某些嵌入式場景中非常有用,以下是
運行OVModelForCausalLM Python模塊時出錯了,怎么解決?
創建了一個自定義 Python* 代碼,類似于遵循 240-dolly-2-instruction 的 Jupyter 筆記本。
OVModelForCausalLM Python* 模塊運行時出錯。
發表于 03-05 06:44
python匿名函數的使用
評論