转载: 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函数