欧美激情一区二区三区在线,欧美激情性A片在线观看,欧美激情无码乱妇

cda

數字化人才認證

您的位置:首頁 > 大數據時代 > 自從搞懂了回調函數,我對Python的理解上了一個臺階

自從搞懂了回調函數,我對Python的理解上了一個臺階

2022-08-03

自從搞懂了回調函數,我對Python的理解上了一個臺階

作者:麥叔

來源:麥叔編程

本期應一位老粉絲的要求--三分鐘講清楚什么是回調函數(Callback Function)。

?

定義

把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,這就是回調函數?;卣{函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,用于對該事件或條件進行響應。

「把上面晦澀的概念匯成一句話就是:」

?

回調函數就是一個被作為參數傳遞的函數。

?

舉栗子

花三行代碼寫個計算器功能的函數,

def calculator(v1,v2,fn): result = fn(v1,v2) return result

但是這個計算器啥功能也沒有,1+1也不會算。

再寫個add函數求兩數之和,

def calculator(v1,v2,fn): result = fn(v1,v2) return result def add(v1,v2): return v1 + v2 # 調用calculator,計算1+1 print(calculator(1,1,add))

輸出結果:

2 

上述代碼中的add函數就被稱為calculator的回調函數。

是不是還是蠻簡單?

?

那還不把減、乘、除的回調函數寫了,增加印象?

?

回調函數和遞歸函數的區別

回調函數是在一個函數中“回調函數”以參數的形式傳入,并在該函數內部被調用。

而遞歸函數是在一個函數中,調用了自己。

回調函數和高階函數的區別

還記得前幾期出現的高階函數么?回調函數是不是還蠻像它的?

回顧下高階函數的定義,

?

Python的高階函數其實就是接受函數為參數,或者把函數作為結果返回的函數是高階函數(higher-order function)。

?

而回調函數的定義

?

回調函數就是一個被作為參數傳遞的函數。

?

有沒有感受其中的奧妙??

def calculator(v1,v2,fn): result = fn(v1,v2) return result def add(v1,v2): return v1 + v2

上面的代碼中,

calculator是高階函數,而add是回調函數。

再細品下~

最后

感謝這位粉絲的持續關注,不知道今天的文章是否對你有所幫助?

完 謝謝觀看

分享
收藏

OK