回呼函式在各種編程函式中都是比較常見的,回呼函式的出現主要是為了降低函式之間呼叫的耦合性,從而實作解耦,
簡單來說,如果一個函式可以作為被傳遞就稱這個函式為回呼函式,比如:func1(func2()),那么func2就是回呼函式,此時,只需要知道func2這個函式的功能是什么,在執行func1時呼叫func2就可以,無須關心func2的實作程序是什么,

【閱讀全文】
def func1(func2):
func2()
def func2():
print('我是func2函式')
func1(func2)
如此,像上面這樣執行就可以完成一個簡單的回呼函式的使用,
通過這樣的使用還可以實作一些稍微復雜的回呼,
def func(func3,func4):
print(func3() + func4())
def func3():
return 5
def func4():
return 3
func(func3,func4)
除了上面的使用實體以外,回呼函式還可以使用帶引數的傳遞形式,
def ser1(a):
return a * 100
def ser2(b):
return b * 20
def ser(ser1,a,ser2,b):
print(ser1(a) + ser2(b))
ser(ser1,1,ser2,1)
在執行呼叫ser(ser1,a,ser2,b)時,其中a對應的是ser1回呼函式的引數,b對應的是ser2回呼函式的引數,這樣就實作攜帶引數的回呼函式被呼叫的情況,
還有一種攜帶多個引數的使用情況,寫法也很nice,
def exec(fn,args,callback):
result = fn(*args)
callback(result)
def add(a,b):
return a + b
def show(result):
print("結果是:",result)
exec(add,(10,4),show)
執行exec(add,(10,4),show)時,add作為第一個回呼函式被執行,然后,將add函式的回傳結果作為第二個回呼函式的引數呼叫show回呼函式,
最后用更專業的術語來理解一下,回呼函式就是一個通過函式指標呼叫的函式,如果你把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標被用來呼叫其所指向的函式時,我們就說這是回呼函式,
【往期精選】
解決pyinstaller打包程序中外部資源無法加載的問題 ...
pyqt5做了一個二維碼生成器,已打包成exe可執行程式...
如何在控制臺實作一個資料管理系統(包括MYSQL資料庫的增刪改查)
自制檔案格式轉換器,支持 .txt/.xlsx/.csv格式轉換...
PyPDF2如何實作按照PDF頁碼提取后并另存為PDF格式檔案?
歡迎關注作者公眾號【Python 集中營】,專注于后端編程,每天更新技術干貨,不定時分享各類資料!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/397156.html
標籤:Python
上一篇:1.15 通過某個欄位將記錄分組
