python 实例化父类对象_在Python中从现有超类实例化子类

所以我正在与第三方库进行交互,这会引发例外情况,但它基本上都会引发相同的异常(特别是suds.WebFault.但是,有可能从异常引发的数据中确定异常的确切类型.我希望将这个异常抽象为子类化这种类型的异常,即:

from suds import WebFault

class MoreSpecificError(WebFault):

pass

我喜欢子类化,因为它不会破坏期望WebFault的现有实现.我遇到的问题是将WebFault上已有的数据传递给MoreSpecificError.我想做的是获取现有的异常对象,然后将其“转换为”子类,不做任何更改或重新运行__init__.到目前为止我完成的工作是这样的:

from suds import WebFault

class MoreSpecificError(WebFault):

# You pass the old WebFault when instantiating this exception.

# Then it gets poofed into a MoreSpecificError type

def __new__(cls, internal_fault):

return internal_fault

# This is necessary to prevent the parent class' __init__ from being run

def __init__(self, internal_fault):

pass

编辑:我现在知道这不起作用,新对象将不是子类的类型

哪个“有用”,但是需要把__init__这个只是一个通行证感觉真的很重要.更不用说一些东西不喜欢自定义的__new__方法(阅读:deepcopy,它不是一个选择,我们使用的测试框架(生菜)使用它,我们已经投入很多).

我想知道是否有更好的方法来做到这一点?我知道理想的方法是最初提升子类,但我真的不想开始使用这个库的分叉副本.我真的希望Python中有一些魔法,我还不知道.

我认为这就是你要求的:

class MoreSpecificError(WebFault):

def __new__(self, old):

old.__class__ = MoreSpecificError

return old

但是,由于here所描述的原因,它存在风险.如果您正在做的只是捕获异常它应该可以工作,但不能保证.

我仍然认为以正常方式实际创建一个新的异常对象会更好.如果您担心丢失原始异常中的信息,请查看该异常的文档,以查看哪些信息记录为其公共API的一部分,并复制该信息.依赖于不属于原始API的异常信息的代码不是您需要支持新API的代码.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java执行查询postgresql得到中文乱码_Greenplum: 基于PostgreSQL的分布式数据库内核揭秘(上篇)...

关于作者姚延栋,山东大学本科,中科院软件所研究生。PostgreSQL中文社区委员,致力于Greenplum/PostgreSQL开源数据库产品、社区和生态的发展。一、数据库内核揭秘Greenplum 是最成熟的开源分布式分析型数据库(今年6月份预计发布的 Greenplum 6…

Openstack的镜像上传原理

openstack的horizon的上传镜像流程 通过html的form表单上传文件 先上传到horizon指定的临时目录,存储起来 通过glance-api请求接口 实际上glance-api也是提供了一个上传接口,由前面我们存储的临时目录,上传到glance-api的镜像创建接口; [root…

关于授予81项成果2019年度“吴文俊人工智能科学技术奖”的决定

来源:人工智能人物为加快实施国家创新驱动发展战略,深入贯彻《新一代人工智能发展规划》,更好地推进科教兴国、人才强国的政策落实,弘扬“尊重劳动、尊重知识、尊重人才、尊重创造”的良好风尚,通过推选优秀的智能科学…

mysql索引 和 es索引_MySQL索引 VS ElasticSearch索引

今天MySQL数据库栏目介绍MySQL索引与ElasticSearch索引的对比。前言这段时间在维护产品的搜索功能,每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的。这甚至比在我本地使用 MySQL 通过主键的查询速度还快。为此我搜索了相关资料&#x…

开启httponly之后登陆失败_二次元约会模拟《少女都市》正式版登陆Steam 橘势大好...

《少女都市(Shoujo City)》于2018年1月在Steam开启了抢先测试,昨天发布了1.0正式版。这是一款专注于二次元和御宅文化的百合向约会模拟游戏,目前Steam好评率94%,自带简体中文。《少女城市》结合了美少女视觉小说与沙盒式的城市探索冒险&#…

科技/IT:2019 年 Q3 表现最佳和最差的企业

来源:云头条在2019年上半年经历稳步上涨之后,由于全球经济的不确定性和美中贸易紧张局势,2019年第三季度的股市如同过山车。道琼斯指数第三季度(截至9月30日)以26916.83点收盘,比2019年6月28日收盘价上涨1.…

python内部函数和比外部函数快_Python:如何允许“内部函数”更改多个“外部函数”中的非局部变量...

假设我有一个函数,它在函数中的不同位置重复了大量代码,我可以执行以下操作:def foo():def bar():# do some stuffbar()# do some other stuffbar()我可以在bar内“读取”在foo范围内的变量,此外,如果需要编辑它们&…

mybatis typehandler

建立TypeHandler 我们知道java有java的数据类型,数据库有数据库的数据类型,那么我们在往数据库中插入数据的时候是如何把java类型当做数据库类型插入数据库,在从数据库读取数据的时候又是如何把数据库类型当做java类型来处理呢?这…

java图片压缩不失真_软件分享 | Lit图片压缩

软件分享01软件名称Lit图片压缩02软件版本V1.2.0.01603软件简介Lit图片压缩app是一款免费简单好用的图片压缩工具,让图片在不失真的情况下,进行压缩和裁剪,轻松就能压缩成你想要的尺寸,并且原来的像素不失真,保持原画质…

从大型主机到个人计算机:机器人产业可以从pc普及革命中学到什么?

来源:大数据文摘出品自主化机器人已逐渐变得无处不在。自动吸尘器、自动割草机、会简单交互的小玩具,以及呼之欲出的自动驾驶汽车,都可以看作是一个能实现某种自动功能的机器人。一辈接着一辈,我们一直在期待出现《星球大战》中的…

【Poj1017】Packets

http://poj.org/problem?id1017 艰难啊 弄了很久咧 拍了几十万组,以后拍要多组数据 Solution 从大wangxiaofang 从大往小放,有空余的从大往小填 注意细节 Notice b<0的情况,还有就是当前填充完了,还剩一点给下一个(小一点的)填 Code // This file is made by YJinpeng&…

vb上传文件到MySQL_ASP.NET上传文件到数据库VB版

代码如下&#xff1a;敬请过目&#xff01;If Me.FileUpload1.PostedFile.ContentLength > 0 ThenDim cn As New Data.OleDb.OleDbConnectionDim dc As Data.OleDb.OleDbCommandDim para As Data.OleDb.OleDbParameterDim SQL, FileName As String连线字符串cn.ConnectionSt…

python爬虫框架论文开题报告范文_研究思路及框架--开题报告

三、研究的思路、论文框架本文采取文献研究、定性研究、定量研究、计量研究等研究方法&#xff0c;紧紧围绕“宁波对外贸易对产业结构升级的影响”这一主题展开&#xff0c;在研究国内外关于这方面的文献的基础上&#xff0c;深入分析在一个开放经济中宁波对外贸易可以通过哪些…

构建超级智能未来系统的三原则

《崛起的超级智能》作者&#xff0c;计算机博士刘锋前言&#xff1a;科技领域看不见的手在过去50年促使互联网从网状结构进化成为大脑模型&#xff0c;而人类群体智慧与机器群体智能通过这个互联网大脑架构形成人类前所未有的超级智能形式。在构建互联网大脑模型成熟状态的过程…

游戏“冰川滑行”设计稿(第一版)

名称&#xff1a;&#xff08;暂定&#xff09;冰川滑行 游戏类型&#xff1a;关卡式迷宫 基本规则&#xff1a;在迷宫中可以向上下左右方向移动&#xff0c;每次移动只能在碰到障碍物或到达无冰区停止&#xff1b;从入口进入&#xff0c;从出口离开为胜利。 地形种类&#xff…

mysql授予权限和撤销权限的关系_MySQL数据库常用的授予权限和撤销权限的命令讲解...

MySQL 赋予用户权限命令的简单格式可概括为&#xff1a;一、grant 普通数据用户&#xff0c;查询、插入、更新、删除 数据库中所有表数据的权利1 2 3 4grant select on testdb.* to common_user% grant insert on testdb.* to common_user% grant update on testdb.* to common…

spring的aop_Spring AOP 小结

1. AOP专业概述在软件行业&#xff0c;AOP为Aspect Oriented Programming的缩写&#xff0c;意思为&#xff1a;面向切面编程&#xff0c;通过预编译方法和运行期动态代理实现程序功能的统一维护的一种技术。要理解切面变成&#xff0c;就需要先理解什么是切面。用刀把一个西瓜…

【解析】工业机器人中的各类传感器技术应用

来源&#xff1a;中国机器人网前言工业机器人涉及到的传感器有哪些&#xff1f;2012年&#xff0c;美国提出“工业互联网”&#xff0c;2013年&#xff0c;德国提出“工业4.0”&#xff0c;2015年&#xff0c;中国提出“中国制造2025”。在工业物联网、AR、云计算等技术热潮下&…

java水果超市mysql_Java基础 | 项目实战之水果超市

传智播客线上平台博学谷启动项目实战&#xff0c;在学习过程中真正还原企业实际开发流程及团队配合&#xff0c;同时对所学知识最大化吸收项目启动准备01规定学习位置参加项目实战&#xff0c;学习位置不能小于当前标注的位置02项目分组本次Java基础参加项目实战的同学较多&…

android dp sp px_Android屏幕适配★★重点盘点★★

引言屏幕适配是 android 开发/面试 绕不开的一个问题。本文 将屏幕适配的知识要点完整展现给各位读者。正文大纲android需要做屏幕适配的原因基础知识点(★★★很重要★★★)屏幕适配攻略正文↓↓↓android需要做屏幕适配的原因关键字&#xff1a;android碎片化android面世以来…