python回调函数的作用是_回调函数的意义以及python实现
因工作需要,最近在学习使用python来解析各种文件,包括xmind,xml,excel,csv等等。
在学习python解析XML的时候看到这样一段话:
当时就犯了老毛病,被一个不是很知道的名词引起了兴趣--回调函数,后搜索资料学习了一下,感觉需要写个什么来记录一下顺便加深映象,此处引用了不少各位神的经验,篇幅所限就不一一感谢了。
回调函数(callback),百度百科的解释是这样的:
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
可能是学识确实有限,看起来比较懵逼。然后去找了一些通俗易懂的解释--就好像是家政服务,家政公司提供了一个API:打扫房子,而且还能提供各种打扫,比如扫地,擦家具,清洁马桶等等,我们把打扫房子看做库函数,那么打扫屋子的方式呢是你自己决定的,你要怎么打扫就要预约并执行那种回调函数,你预约并执行服务的行为叫做登记回调函数。下面写个看起来很low的实现以便理解
1 #coding=utf-8
2 #请不要在意为毛要清洁这么多次
3
4
5 defclean1(times):6 """
7 就假装是扫地吧,这种函数命名方式,千万别学习8 :param times: 次数9 :return: None10 """
11 print '已完成扫地次数:', str(times)12
13
14 defclean2(times):15 """
16 默默的装作洗抽油烟机17 :param times: 次数18 :return: None19 """
20 print '已洗抽油烟机次数', str(times)21
22
23 defcall_clean(times, function_name):24 """
25 这个很重要,这个就是家政公司的业务系统,要啥业务都得在这说26 这个是实现回调函数的核心27 :param times:次数28 :param function_name:回调函数名29 :return:调用的函数结果30 """
31 returnfunction_name(times)32
33 if __name__ == '__main__':34 call_clean(100, clean2) #给我洗100次抽油烟机,好吧,很变态
最后粘贴一段百度百科上面写的回调函数的意义:传送门
好吧,犯懒了
最后说一句,看到这应该懂了的一句话:
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
python回调函数的作用是_回调函数的意义以及python实现相关推荐
- 大学计算机python编程的函数及作用总结_【转】python 内置函数总结(大部分)...
python 内置函数大讲堂 python全栈开发,内置函数 1.内置函数 python的内置函数截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python ...
- python主函数的作用_python中main函数的用法
原博文 2020-03-27 20:25 − **什么场景下会有main函数?** 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. **ma ...
- python给函数设置超时时间_在 Linux/Mac 下为Python函数添加超时时间的方法
我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做 timeout ,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊 ...
- python给函数设置超时时间_在 Linux/Mac 下为Python函数添加超时时间
我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做timeout,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊情况 ...
- python函数的作用是什么_Python函数
python函数讲解 函数三问: 什么是函数? 函数就是可以完成特定功能的代码块,函数就是存放代码的容器可以理解为一个装有一些工具的箱子 为什么有函数? 1.减少了代码的冗余 2.让程序增加了可扩展性 ...
- python装饰器什么时候用_什么时候会用到python装饰器
1 所谓装饰器就是把函数包装一下,为函数添加一些附加功能,装饰器就是一个函数,参数为被包装的函数,返回包装后的函数:你可以试下:12345678910111213def d(fp): def _ ...
- python人工智能入门优达视频_看优达学城python入门视频学习C++
在如今这个时代,计算机领域中,各种技术瞬息万变,不断更新迭代.随着人工智能.机器学习等先进技术的兴起,近年来,python入门视频是很多人关注的,Python程序员的数量已经大大超过C++程序员.然而 ...
- python执行js脚本安全吗_手把手教你如何使用Python执行js代码
前言 各位小伙伴,大家好,这次咱们来说一下关于爬虫方向的一个知识,Python如何执行js,快来看看吧!!! 为什么要引出Python执行js这个问题? 都说术业有专攻,每个语言也都有自己的长处和短处 ...
- c语言delay函数的作用,delay用法(delay函数使用)
是delay to do 还是delay doing 还是delay do?还是什么啊~~ 问下 delayvt.延期, 延缓: 推迟We decided to delay our holiday u ...
最新文章
- css定位页面元素,页面元素定位-CSS元素基本定位
- Centos中提示You have new mail in /var/spool/mail/root 解决
- Leetcode 219. 存在重复元素 II 解题思路及C++实现
- 2021 CCPC E. 被遗忘的计划(循环卷积+快速幂)
- linux 扩展挂载盘大小_Linux 添加挂载硬盘(包含挂载大于2T以上硬盘)
- 【感悟】本书书名无法描述本书内容(二)
- element-ui主表格多选后 二级弹框表格默认全选数据
- [转]关于SilverLight:你需要知道的十件事情
- C++primer 7.4节练习
- fullpage.js使用指南
- idea java常用手册
- AAAI 2020上的NLP有哪些研究风向?
- batchplot插件用法_Batchplot设置使用指南,实现批量打印CAD图纸
- 对16S数据使用PICRUSt预测输出KEGG和COG表
- Centos 基本命令
- BUUCTF-pwn(15)
- 雷达监控与视频监控性能对比分析
- 最简单小米机器一键激活XPOSED框架教程
- linux系统安装arcgis server 10.3.1
- vue移动端实现聊天功能