Python 回调函数
什么是回调函数?
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数;
这是官方的解释,理解上有点费解,我自己的理解一个函数要求先传给它一个函数,然后在特定的场景下调用达到完成目标任务。这个被传入后又被调用的函数就称为回调函数。
我们来实现下回调函数,这样更容易理解下这个回调函数
def hello(item):
"""定义问候操作"""
return "Hello,%s" % item def attack(item):
"""定义攻击操作"""
return "Attack,%s" % item def like(item):
"""定义喜欢的操作"""
return "Like,%s" % item def func(item, callback):
"""这里需要传入一个callback,这个callback其实就是回调函数"""
return callback(item)
这里我们定义三种操作,喜欢、攻击、问候,我们可以根据不同的参数来进行调用这三种方法
item = "World"
if item == "World":
func(item, callback=hello)
elif item == "Gril":
func(item, callback=like)
else:
func(item, callback=attack)
这里我们可以根据我们输入的item不同来进行调用对应的方法,输入World 调用hello ,Gril调用 like,其他的值一律调用attack;
通过上面的例子是不是更容易理解些了。
之前也没有细细的研究过,面试的时候被问到由于token 过期导致case的执行结果返回的httpcode 401,遇到这样的场景怎么处理,我的反应如果请求的时候需要使用到token认证我这边肯定是首先需要在调用之前生成token,在请求的时候直接取用这个token,避免这样的token过期导致的错误,但是面试官说这里使用回调函数,发现特定的错误的时候通过回调函数重新获取token。
Python 回调函数的更多相关文章
- Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- Python回调函数用法实例
Python回调函数用法实例 作者:no.body链接:https://www.zhihu.com/question/19801131/answer/27459821 什么是回调函数? 我们绕点远路来 ...
- python回调函数应用-获取jenkins构建结果
需求背景: 现在用jenkins构建自动化测试(2个job),公司现将自动化纳入到发布系统 要求每次构建成功之后,把测试结果发送给发布系统.这就需要先获取jenkins构建的结果,如果构建结束,才能发 ...
- 计算机基础,Python - 回调函数,使用装饰器注册回调函数
1. 参考: https://en.wikipedia.org/wiki/Callback_(computer_programming) https://developer.mozilla.org/e ...
- python 回调函数,最简单的例子
回调的英文定义: A callback is a function that is passed as an argument to another function and is executed ...
- 回调函数的意义以及python实现
因工作需要,最近在学习使用python来解析各种文件,包括xmind,xml,excel,csv等等. 在学习python解析XML的时候看到这样一段话: 3.ElementTree(元素树) Ele ...
- python 自定义回调函数
回调函数用起来比较爽.特别是在js中,满世界全是回调,那么在python中,怎么来优雅地实现自己的回调函数呢 下面贴一个我写的例子 class BaseHandler(object): def cra ...
- python 管道 事件(Event) 信号量 进程池(map/同步/异步)回调函数
####################总结######################## 管道:是进程间通信的第二种方式,但是不推荐使用,因为管道会导致数据不安全的情况出现 事件:当我运行主进程的 ...
- python并发编程之多进程2-------------数据共享及进程池和回调函数
一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...
随机推荐
- [JavaScript] 设置函数同名变量为false会导致函数无法执行
var findEmail=false; function findEmail(){ alert("findEmail");} 这样函数不会运行. 为了保证函数可以运行,修改为: ...
- [Hibernate] hibernate.cfg.xml 配置文件的一些设置
<!-- 消除:Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect. ...
- redis的发布订阅、持久化存储、redis的主从复制
redis的发布订阅 1. 创建redis配置文件 vim /opt/redis_conf/reids-6379.conf mkdir /data/6379 redis-server redis-6 ...
- QANet
Reading Comprehension(RC) 阅读理解对于机器来说, 是一项非常艰巨的任务.google提出QANet, 目前(2018 0505)一直是SQuAD的No. 1. 今天简单地与大 ...
- linux timing profile
double getUnixTime(void) { struct timespec tv; ) ; return (((double) tv.tv_sec) + (double) (tv.tv_ns ...
- Android stdio 报错 error invoking main method
打开Android stdio失败 报错:error invoking main method 想想前一天做了什么事?? 昨天把企图把Android Stdio文件包移盘,但是中途截止了,也就是说移动 ...
- Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮
效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...
- History of program(1950-2020)
1957年 约翰·巴科斯(John Backus)创建了是全世界第一套高阶语言:FORTRAN. John Backus 1959年 葛丽丝·霍普(Grace Hopper)创造了现代第一个编译器A- ...
- while +for+字符串
# while 循环嵌套# user_from_db='egon'# pwd_from_db='123'# while True:# usr_inp=input('username>>&g ...
- Exception,标准异常总结
常见异常种类: