回调函数在各种编程函数中都是比较常见的,回调函数的出现主要是为了降低函数之间调用的耦合性,从而实现解耦。
简单来说,如果一个函数可以作为被传递就称这个函数为回调函数。比如: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 5def func4():
return 3func(func3,func4)
除了上面的使用实例以外,回调函数还可以使用带参数的传递形式。
def ser1(a):
return a * 100def ser2(b):
return b * 20def 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 + bdef show(result):
print("结果是:",result)exec(add,(10,4),show)
执行exec(add,(10,4),show)时,add作为第一个回调函数被执行。然后,将add函数的返回结果作为第二个回调函数的参数调用show回调函数。
最后用更专业的术语来理解一下,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

文章图片
【往期精选】
解决pyinstaller打包过程中外部资源无法加载的问题 ...
pyqt5做了一个二维码生成器,已打包成exe可执行程序...
如何在控制台实现一个数据管理系统(包括MYSQL数据库的增删改查)
自制文档格式转换器,支持 .txt/.xlsx/.csv格式转换...
【python回调函数能做什么()】PyPDF2如何实现按照PDF页码提取后并另存为PDF格式文件?
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)