位置: 编程技术 - 正文

实例解析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)

  • 注册资本没有到位可以注销吗
  • 以前年度所得税滞纳金的账务处理
  • 企业信用公示的时效是多久
  • 进项抵扣联丢了怎么办
  • 现金日记账本月合计的红线画法
  • 没有工会 还需要交钱吗
  • 其他应收款账目
  • 备用金与其他应收款的记账规则
  • 增值税发票选择确认平台勾选注意事项
  • 辅导期一般纳税人
  • 该企业本月发生如下经济业务
  • 公司对外借款怎么做账
  • 生产企业研发用原料抵进项可以吗?
  • 反倾销税税率查询
  • 只要有收入就要交印花税吗
  • 未办预售证,企业取得这笔收入要缴增值税吗?
  • 工资年终奖金扣多少税
  • 符合条件的小微企业,减按20%
  • 在建工程产生废料收入的账务处理?
  • 以前年度少计费用,调整分录
  • 对公汇款银行退回
  • 资产负债表的编制方法
  • 代理进口增值税客户不抵扣,进出口公司可以抵扣吗
  • windows10如何开启wifi
  • 荣耀x10的鸿蒙系统怎么开启
  • 处置子公司属于调整事项吗
  • 企业所得税年度预缴的算法
  • lsass.exe是什么程序
  • 填制的凭证内容有哪些
  • java date类型
  • php文字转语音源码
  • 奥尔梅克
  • php 动态执行代码
  • 计算所得税不得扣除的税金
  • 公司买发票的费用怎么做账?
  • 福利费入账要求
  • 个税计税周期 一年
  • 购买研发设备可以直接列入研发开支不
  • java中的常量是什么意思
  • 织梦安装详细教程
  • 给客户买的车票怎么查询
  • 未分配利润用于扩大再生产
  • 建筑业差额纳税申报
  • 制作费开票属于什么编码类型
  • 股东买房能在银行贷款吗
  • 使用mysql命令
  • mysql数据库性能优化方法有哪些
  • 利润表中利息费用包括手续费吗
  • 计算企业所得税可以扣除的税金
  • 经营租赁属于什么收入
  • 进料料件复出可以给第三方吗
  • 固定资产明细账图片
  • 公司的钱如何提出来
  • 发生额大额标准怎么确定
  • 哪些行为应作为证据
  • mysql使用教程
  • mysql newid()
  • mysql批量更新多条数据
  • 删除windowsapp
  • win2003取消自动锁定
  • 此windows副本不是正版黑屏
  • win8搜索不到自己家的WiFi
  • js中date对象
  • Linux 压缩某个文件夹的实现方法
  • 批处理文件.bat
  • 浏览器firefox
  • 可实现的系统
  • unity find references in scene
  • unity如何成一组
  • angularjs4
  • ajax成功不走success
  • jquery 选择器 空格
  • shell脚本 -ne 0
  • python在设计领域的应用
  • locust框架
  • 建筑服务纳税人有哪些
  • 个体工商户如何申报个税
  • 中石化一键加油周几有优惠
  • 电子缴款凭证可以用于报销吗
  • 招投标法实施条例是哪一年修正的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设