https://www.zhihu.com/question/19801131/answer/27459821
什么是回调函数?我们绕点远路来回答这个问题。编程分为两类:系统编程(system programming)和应用编程(application programming)。所谓系统编程,简单来说,就是编写库;而应用编程就是利用写好的各种库来编写具某种功用的程序,也就是应用。系统程序员会给自己写的库留下一些接口,即API(application programming interface,应用编程接口),以供应用程序员使用。所以在抽象层的图示里,库位于应用的底下。
当程序跑起来时,一般情况下,应用程序(application program)会时常通过API调用库里所预先备好的函数。但是有些库函数(library function)却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的、后又被调用的函数就称为回调函数(callback function)。
even.py
:
def double(x):
return x * 2
def quadruple(x):
return x * 4
callback_demo.py
:
from even import *
def getOddNumber(k, getEvenNumber):
return 1 + getEvenNumber(k)
def main():
k = 1
i = getOddNumber(k, double)
print(i)
i = getOddNumber(k, quadruple)
print(i)
i = getOddNumber(k, lambda x: x * 8)
print(i)
if __name__ == "__main__":
main()
运行callback_demp.py
,输出如下:
3
5
9
参考:
回调函数(callback)是什么? https://www.zhihu.com/question/19801131/answer/27459821
python 回调函数(Callback) https://blog.****.net/qq_21210467/article/details/80706277