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实现数据共享,事实 ...
随机推荐
- liunx存储管理之基础知识
存储基础知识 ====================================================================================主要知识点: 基本 ...
- Practical Node.js (2018版) 14章, async code in Node
Asynchronous Code in Node 历史上,Node开发者只能用回调和事件emitters. 现在可以使用一些异步的语法: async module Promises Async/aw ...
- CefGlue中js与C#交互(实现mp3播放)
一.C#调用js 1.通过CefFrame.ExecuteJavaScript(string code, string url, int line)方法执行JS private void browse ...
- animation特效
在小程序中的使用: <view class='test1'> <image src='/images/light.png'></image> </view&g ...
- Python字符编码的发展、cmd寻找路径
字符编码的发展: ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示 ...
- ERROR in Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (64)
该问题说的是当前环境不支持node-sass,网上说了一下是要安装node 7一下版本才支持. 这里改使用less-loader,及less
- Java启动工程时,加载固定数据到Map中(不用每次访问数据库)
如下:启动工程时,加载配置文件的用户名和密码到map中, 通过getKeyByValue()获取即可 import java.util.HashMap; import java.util.Map; i ...
- Codeforces Round #207 (Div. 1) A. Knight Tournament (线段树离线)
题目:http://codeforces.com/problemset/problem/356/A 题意:首先给你n,m,代表有n个人还有m次描述,下面m行,每行l,r,x,代表l到r这个区间都被x所 ...
- TOJ-5395 大于中值的边界元素
描述 给定一个二维数组,求二维数组的边界元素中,大于二维数组“中值”的元素个数.这里的“中值”定义为一个元素序列中: (1)当元素个数为奇数时,即为中间大的元素: (2)当元素个数为偶数时,为中间大的 ...
- Java学习笔记40(sql:将数据库内数据存入对象中)
新建一个数据表: use qy97; create table student( id int primary key auto_increment, sname ), gander ), age i ...