回调函数的意义以及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文件中的所有图片【几行代码即可实现】