位置: 编程技术 - 正文

在Python中定义和使用抽象类的方法(python怎么定义)

编辑:rootadmin

推荐整理分享在Python中定义和使用抽象类的方法(python怎么定义),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:简述python语言中定义函数的规则,python中定义和声明,在python中定义函数,在python中定义函数,python定义x,python中定义和声明,在python中怎么定义,python定义pi,内容如对您有帮助,希望把文章链接给更多的朋友!

像java一样python也可以定义一个抽象类。

在讲抽象类之前,先说下抽象方法的实现。

抽象方法是基类中定义的方法,但却没有任何实现。在java中,可以把方法申明成一个接口。而在python中实现一个抽象方法的简单的方法是:

任何从Sheep继承下来的子类必须实现get_size方法。否则就会产生一个错误。但这种实现方法有个缺点。定义的子类只有调用那个方法时才会抛错。这里有个简单方法可以在类被实例化后触发它。使用python提供的abc模块。

这里实例化Sheep类或任意从其继承的子类(未实现get_size)时候都会抛出异常。

因此,通过定义抽象类,可以定义子类的共同method(强制其实现)。

如何使用抽象类

通过ABCMeta元类来创建一个抽象类, 使用abstractmethod装饰器来表明抽象方法

注册具体类

从抽象类注册一个具体的类

子类化实现

可以使用继承抽象类的方法来实现具体类这样可以避免使用register. 但是副作用是可以通过基类找出所有的具体类

在Python中定义和使用抽象类的方法(python怎么定义)

如果使用继承的方式会找出所有的具体类,如果使用register的方式则不会被找出

使用__subclasshook__

使用__subclasshook__后只要具体类定义了与抽象类相同的方法就认为是他的子类

不完整的实现

如果构建不完整的具体类会抛出D不能实例化抽象类和抽象方法

具体类中使用抽象基类

打印结果

可以使用super来重用抽象基类中的罗辑, 但会迫使子类提供覆盖方法.

抽象属性

打印结果,A不能被实例化,因为只有一个抽象的property getter method.

定义抽象的读写属性

打印结果, 定义具体类的property时必须与抽象的abstract property相同。如果只覆盖其中一个将不会工作.

使用装饰器语法来实现读写的抽象属性, 读和写的方法应该相同.

举例讲解Python中metaclass元类的创建与使用 元类是可以让你定义某些类是如何被创建的。从根本上说,赋予你如何创建类的控制权。元类也是一个类,是一个type类。元类一般用于创建类。在执行

Python的Tornado框架实现图片上传及图片大小修改功能 图片的上传上传图片使用了表单提交,下面是html部分,enctype="multipart/form-data"表示不对字节进行编码,上传文件类型时需指定.input标签的type="file"指定上传

Python的Tornado框架实现异步非阻塞访问数据库的示例 tornado即是一个http非阻塞服务器,就要用起来,我们将用到tornado框架,mongodb数据库以及motor(mongodb的异步驱动).来简单实现tornado的非阻塞功能.其他环境支持

标签: python怎么定义

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

上一篇:Python中functools模块的常用函数解析(python3 functools)

下一篇:举例讲解Python中metaclass元类的创建与使用(python 举例)

  • 五险一金代缴费
  • 小规模暂估入库的账务处理
  • 房地产按揭是什么意思
  • 报账单大写金额填写方式
  • 8.会计核算方法具体包括哪些内容?
  • 贴息为什么要付利息呢
  • 兼职业务拿提成合法吗
  • 企业所得税计税金额怎么算
  • 购买产品没开发票支付宝支付
  • 收到费用报销发票怎么做
  • 政府补助应计入
  • 申请生育津贴需要提供什么材料
  • 生产过程中报废怎么核算成本
  • 待摊费用不要了怎么做账?
  • 免抵退分录怎么做
  • 财税[2016]101
  • 总包劳务工资发什么科目
  • 外购商品用于招待怎么做账
  • 简易计税项目取得的进项发票可以抵扣别的项目吗
  • 小规模税收减免
  • 收到电子银行承兑汇票怎么做账务处理
  • 鸿蒙系统图标底色变白
  • guest的作用
  • 民办非企业单位信息
  • 如何给宽带加速使用
  • 企业所得税申报表
  • 对公帐户定期存款利率
  • linux源码安装软件的方法介绍
  • PHP:curl_multi_info_read()的用法_cURL函数
  • 龙骨花的养殖方法作用
  • php中通过什么属性可以获取数组中元素的个数
  • 收到银行汇票怎么背书
  • PHP:mcrypt_get_key_size()的用法_Mcrypt函数
  • 母子公司吸收合并税务处理
  • 固定资产闲置能报废吗
  • python调用cuda执行加法
  • vue有哪些方法
  • 多模态特征融合pytorch
  • php多进程处理大数据
  • thinkphp模糊查询
  • 上市公司发行股票会计分录
  • 小规模纳税人季度不超30万怎么做账
  • 商品发生销售退回
  • 货物不符合质量条款规定
  • 租赁公司一般都有什么税
  • 金税四期可以查香港银行卡吗
  • 收到科技局研发项目资金计入什么科目
  • 农民工专户里的钱能转出来吗
  • 研发费用加计扣除2022政策
  • 开票系统维护费怎么做账
  • 上一年度企业所得税汇算清缴会计分录
  • 纳税人延期缴纳税款
  • 管理费用增加记贷方还是借方
  • 收到收到
  • 轿车折旧年限为几年
  • 建立明细账的操作步骤
  • sql server dbcc
  • mysql中decimal对应java类型
  • win10系统提醒
  • mac应用图标不见了怎么办
  • linux参数命令
  • 潘 pan
  • 写出linux安装的详细步骤
  • win10系统如何快速回到桌面
  • win10无internet怎么办
  • win10的帮助系统在哪
  • 关闭默认共享和共享文件夹
  • cocos2d-js-min.js
  • React Native react-navigation 导航使用详解
  • nodejs发送post请求socket hand up
  • cocos2dx4.0入门
  • jqueryshow和hide封装
  • 置顶聊天折叠怎么关闭
  • androidapk网站
  • 纳税申报表如何看销售额
  • 河南灵活就业缴费截止时间
  • 上季度报表错误怎样更正
  • 广东省地方税务局发票查询
  • 换电员工作时间自由吗
  • 小规模纳纳税人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设