位置: 编程技术 - 正文

实例解析Python的Twisted框架中Deferred对象的用法(python程序解读举例)

编辑:rootadmin

推荐整理分享实例解析Python的Twisted框架中Deferred对象的用法(python程序解读举例),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 例子,python案例讲解,python程序解读举例,python案例分析,python案例分析,python分析案例,python案例分析,python案例分析,内容如对您有帮助,希望把文章链接给更多的朋友!

Deferred对象结构Deferred由一系列成对的回调链组成,每一对都包含一个用于处理成功的回调(callbacks)和一个用于处理错误的回调(errbacks)。初始状态下,deffereds将由两个空回调链组成。在向其中添加回调时将总是成对添加。当异步处理中的结果返回时,Deferred将会启动并以添加时的顺序触发回调链。用实例也许更容易说明,首先来看看addCallback:

运行它将会得到如下结果:

上例中创建了一个deffered并利用其addCallback方法注册一个用于处理成功的回调。d.callback会启动deffered并调用callback链。传入callback的参数也会被各callback链中的第一个函数接收到。有addCallback,那另一个错误的分支,我想也能猜测到了那就是addErrorback,同样来看个例子:

运行它将会得到如下结果:

可以看出Twisted会把错误封装在Failure里。值得注意的是,在之前提到过注册回调总是成对的。在使用d.addCallback和d.addErrorback方法时,我们看似只是添加了一个callback或一个errback。而实际上,为了完成这一级回调链的创建,这些方法还会为另一半注册一个pass-through。要记住,回调链总是具有相同的长度。如果要分别指定这一级回调的callback和errback。可以使用d.addCallbacks方法:那么...今天就先到这里。

进阶示例接下来就应该来点更为实际的,那就是放进Reactor。先来看一个例子:

实例解析Python的Twisted框架中Deferred对象的用法(python程序解读举例)

上例接收一个标题并对其进行处理,如果标题超长会返回超长的错误,否则将其转为HTML并返回。

因所给的标题少于个字符,故执行以上代码会得到如下返回:

有一点值得注意的,上面用到了reactor的callLater方法,它可以用来做定时事件从而模拟一个异步的请求。

如果我们将标题变得很长,比如说:

那结果是可以遇见的:

我们用图看一下触发流程:

Deferreds中的关键之处1. Deferreds将会在调用其callback或errback时被触发;2. Deferreds仅能被触发一次!如果尝试多次触发将会导致AlreadyCalledError异常;3. 第N级callback或errback中的Exceptions将会传入第N+1级的errback中;如果没有errback,则会抛出Unhandled Error。如果第N级callback或errback中没有抛出Exception或返回Failure对象,那接下来将会由第N+1级中的callback进行处理;4. callback中返回的结果将会传入下一级callback,并作为其第一个参数;5. 如果传入errback的错误不是一个Failure对象,那将会被自动包装一次。

剖析Python的Twisted框架的核心特性 一.reactortwisted的核心是reactor,而提到reactor不可避免的是同步/异步,阻塞/非阻塞,在Dave的第一章概念性介绍中,对同步/异步的界限有点模糊,关于同

Java Web开发过程中登陆模块的验证码的实现方式总结 验证码及它的作用验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,

Windows下python2.7.8安装图文教程 本文为大家分享了python2.7.8安装图文教程,供大家参考,具体内容如下1、进入python的官方网站下载:

标签: python程序解读举例

本文链接地址:https://www.jiuchutong.com/biancheng/386913.html 转载请保留说明!

上一篇:详解Python的Twisted框架中reactor事件管理器的用法(python traits)

下一篇:剖析Python的Twisted框架的核心特性(twist python)

  • 使用增值税发票的条件
  • 酒店收入是以当月入账时间为准吗
  • 有金额的框架协议要交印花税吗
  • 发票丢了还能再开么
  • 企业所得税成本费用大于发票金额的原因
  • 运输费计入原材料成本吗
  • 在银行购买支票需要什么手续
  • 个人出售住房缴纳房产税吗
  • 营改增是初次分配还是再分配
  • 车船税没有发票可以税前扣除吗
  • 法院判罚利息怎么算
  • 非营利性企业要交企业所得税吗
  • 保证金逾期退还
  • 公司出售自用汽车如何开票
  • 商铺租金收入交什么税一共多少个点
  • 建筑业未开票收入销项税
  • 企业所得税一般纳税人是怎么缴纳的
  • 营改增前的工程款现在怎么开票
  • 建筑行业包含哪些项目
  • 银行承兑汇票贴现会计分录
  • 应收账款手工核算方法
  • 网络工程完工后干什么
  • 公积金是否计入个人所得税
  • 财务费用在汇算清缴时填哪里科目
  • 物业费需要摊销吗?
  • 营业外支出的税额要进项转出吗
  • 单位车辆车船税缴纳
  • 主营业务成本如何算
  • 法人变更涉及到什么
  • bios详细解释及作用
  • 公司认缴出资怎么交税
  • 太超过了
  • 摊销租赁费属于什么费用
  • vantUI van-picker中的column使用,picker选择器展示对象数组里面的属性,自定义展示数据
  • CodeIgniter针对数据库的连接、配置及使用方法
  • 一般纳税人能开1%的发票吗
  • SE注意力机制加在什么位置
  • vscode搭建vue开发环境
  • 提示框架
  • html5简单吗
  • 2022年终总结
  • php多线程与并发
  • 命令行修改mbr
  • python中的sum函数怎么用
  • 个税申报需要什么资料
  • js回调函数如何返回值
  • phpcms生成html
  • 私募基金成立的规模条件
  • 床垫发票
  • 提供加工修理修配劳务包含哪些
  • 银行对账单电脑上怎么导出
  • 融资租赁开具的发票内容
  • 一般账户的网银操作员变更怎么办理
  • 开了假发票什么后果?
  • 安全生产费相关规定
  • 探望公司员工现金费用报销怎么写
  • 申报表应纳税额和财务账金额不一致可以不改申报表吗
  • fedora31安装教程
  • xp浏览器无法浏览网页
  • rhel7.4安装
  • 华硕主板进入bios怎么设置u盘启动
  • winxp关机立马自动重启
  • ubuntu18.04配置
  • mac系统如何隐藏文件
  • rpm命令的作用是什么
  • 一岁的宝宝可以喝枸杞水吗
  • win7旗舰版更改适配器没有蓝牙连接
  • php运行时出现找不到该网页
  • win7显示ipv6无网络访问权限
  • es6class类用法
  • BootStrap TreeView使用实例详解
  • js 获取ua
  • Custom List in inspector, displaying data your way[Unity]
  • unity3d坐标转换平面坐标代码
  • jquery中keyup
  • js newyork
  • jquery中点击事件点击没动静
  • 发票查询为什么查不出来
  • 国家税务局机打发票可以报销吗
  • 个人所得税超过12万能退税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设