全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

回调函数的意义以及python实现实例

因工作需要,最近在学习使用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 回调函数实现  # 回调  # 这是  # 就说  # 你把  # 其所  # 给我  # 就像  # 一句  # 你要  # 在这  # 是这样  # 还能  # 一是  # 就好  # 不是很  # 你自己  # 映象  # 很重要  # 找了  # 时就 


相关文章: 如何通过服务器快速搭建网站?完整步骤解析  深入理解Android中的xmlns:tools属性  网站制作模板下载什么软件,ppt模板免费下载网站?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  定制建站流程解析:需求评估与SEO优化功能开发指南  制作旅游网站html,怎样注册旅游网站?  c++ stringstream用法详解_c++字符串与数字转换利器  创业网站制作流程,创业网站可靠吗?  建站之星安装失败:服务器环境不兼容?  智能起名网站制作软件有哪些,制作logo的软件?  网站制作服务平台,有什么网站可以发布本地服务信息?  历史网站制作软件,华为如何找回被删除的网站?  C++时间戳转换成日期时间的步骤和示例代码  ,石家庄四十八中学官网?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  建站之星如何取消后台验证码生成?  如何做静态网页,sublimetext3.0制作静态网页?  黑客入侵网站服务器的常见手法有哪些?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  网站制作知乎推荐,想做自己的网站用什么工具比较好?  ,如何利用word制作宣传手册?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何在阿里云部署织梦网站?  XML的“混合内容”是什么 怎么用DTD或XSD定义  广州商城建站系统开发成本与周期如何控制?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  官网建站费用明细查询_企业建站套餐价格及收费标准指南  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  如何在宝塔面板创建新站点?  如何选择高效可靠的多用户建站源码资源?  如何在阿里云香港服务器快速搭建网站?  公司门户网站制作流程,华为官网怎么做?  如何快速打造个性化非模板自助建站?  如何快速搭建高效WAP手机网站?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  清除minerd进程的简单方法  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  如何用西部建站助手快速创建专业网站?  建站主机数据库如何配置才能提升网站性能?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  广州营销型建站服务商推荐:技术优势与SEO优化解析  网站企业制作流程,用什么语言做企业网站比较好?  如何有效防御Web建站篡改攻击?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  建站之星代理如何优化在线客服效率?  c# Task.ConfigureAwait(true) 在什么场景下是必须的 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。