回调函数的意义以及python实现实例
发布时间 - 2026-01-11 01:58:05 点击率:次因工作需要,最近在学习使用python来解析各种文件,包括xmind,xml,excel,csv等等。

在学习python解析XML的时候看到这样一段话:
ElementTree(元素树) ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少。 注:因DOM需要将XML数据映射到内存中的树,一是比较慢,二是比较耗内存,而SAX流式读取XML文件,比较快,占用内存少,但需要用户实现回调函数(handler)。
当时就,被一个不是很知道的名词引起了兴趣--回调函数,后搜索资料学习了一下,感觉需要写个什么来记录一下顺便加深映象,此处引用了不少各位神的经验,篇幅所限就不一一感谢了。
回调函数(callback),百度百科的解释是这样的:
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
可能是学识确实有限,看起来比较懵逼。然后去找了一些通俗易懂的解释--就好像是家政服务,家政公司提供了一个API:打扫房子,而且还能提供各种打扫,比如扫地,擦家具,清洁马桶等等,我们把打扫房子看做库函数,那么打扫屋子的方式呢是你自己决定的,你要怎么打扫就要预约并执行那种回调函数,你预约并执行服务的行为叫做登记回调函数。下面写个看起来很low的实现以便理解
# coding=utf-8 # 请不要在意为毛要清洁这么多次 def clean1(times): """ 就假装是扫地吧,这种函数命名方式,千万别学习 :param times: 次数 :return: None """ print '已完成扫地次数:', str(times) def clean2(times): """ 默默的装作洗抽油烟机 :param times: 次数 :return: None """ print '已洗抽油烟机次数', str(times) def call_clean(times, function_name): """ 这个很重要,这个就是家政公司的业务系统,要啥业务都得在这说 这个是实现回调函数的核心 :param times:次数 :param function_name:回调函数名 :return:调用的函数结果 """ return function_name(times) if __name__ == '__main__': call_clean(100, clean2) # 给我洗100次抽油烟机
最后说一句,看到这应该懂了的一句话:
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# python 回调函数
# python的回调函数
# python 回调函数实现
# 回调
# 这是
# 就说
# 你把
# 其所
# 给我
# 就像
# 一句
# 你要
# 在这
# 是这样
# 还能
# 一是
# 就好
# 不是很
# 你自己
# 映象
# 很重要
# 找了
# 时就
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
大学网站设计制作软件有哪些,如何将网站制作成自己app?
canvas 画布在主流浏览器中的尺寸限制详细介绍
*服务器网站为何频现安全漏洞?
如何在七牛云存储上搭建网站并设置自定义域名?
装修招标网站设计制作流程,装修招标流程?
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
香港服务器选型指南:免备案配置与高效建站方案解析
文字头像制作网站推荐软件,醒图能自动配文字吗?
Laravel如何实现数据库事务?(DB Facade示例)
在centOS 7安装mysql 5.7的详细教程
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Laravel如何创建自定义Artisan命令?(代码示例)
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何在阿里云完成域名注册与建站?
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Laravel Docker环境搭建教程_Laravel Sail使用指南
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
java中使用zxing批量生成二维码立牌
如何在云虚拟主机上快速搭建个人网站?
微信小程序 input输入框控件详解及实例(多种示例)
深圳网站制作平台,深圳市做网站好的公司有哪些?
如何正确选择百度移动适配建站域名?
如何确认建站备案号应放置的具体位置?
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
微信小程序 canvas开发实例及注意事项
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
Bootstrap整体框架之CSS12栅格系统
Laravel如何集成Inertia.js与Vue/React?(安装配置)
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Laravel怎么为数据库表字段添加索引以优化查询
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
Android 常见的图片加载框架详细介绍
北京的网站制作公司有哪些,哪个视频网站最好?
如何在服务器上配置二级域名建站?
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
中山网站制作网页,中山新生登记系统登记流程?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】

