轉載: https://www.zhihu.com/question/19801131/answer/27459821python
什麼是回調函數?咱們繞點遠路來回答這個問題。編程分爲兩類:系統編程(system programming)和應用編程(application programming)。所謂系統編程,簡單來講,就是編寫庫;而應用編程就是利用寫好的各類庫來編寫具某種功用的程序,也就是應用。系統程序員會給本身寫的庫留下一些接口,即API(application programming interface,應用編程接口),以供應用程序員使用。因此在抽象層的圖示裏,庫位於應用的底下。程序員
當程序跑起來時,通常狀況下,應用程序(application program)會時常經過API調用庫裏所預先備好的函數。可是有些庫函數(library function)卻要求應用先傳給它一個函數,好在合適的時候調用,以完成目標任務。這個被傳入的、後又被調用的函數就稱爲回調函數(callback function)。web
even.py
:編程
#回調函數1 #生成一個2k形式的偶數 def double(x): return x * 2 #回調函數2 #生成一個4k形式的偶數 def quadruple(x): return x * 4
callback_demo.py
:app
from even import * #中間函數 #接受一個生成偶數的函數做爲參數 #返回一個奇數 def getOddNumber(k, getEvenNumber): return 1 + getEvenNumber(k) #起始函數,這裏是程序的主函數 def main(): k = 1 #當須要生成一個2k+1形式的奇數時 i = getOddNumber(k, double) print(i) #當須要一個4k+1形式的奇數時 i = getOddNumber(k, quadruple) print(i) #當須要一個8k+1形式的奇數時 i = getOddNumber(k, lambda x: x * 8) print(i) if __name__ == "__main__": main()
運行callback_demp.py
,輸出以下:svg
3 5 9
參考:
回調函數(callback)是什麼? https://www.zhihu.com/question/19801131/answer/27459821
python 回調函數(Callback) https://blog.csdn.net/qq_21210467/article/details/80706277函數