位置: 编程技术 - 正文

在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 举例)

  • 小规模纳税人销售农产品税率是多少
  • 企业销售商品房需要缴纳什么税费
  • 合同印花税怎么贴
  • 工会经费与残保金的取数是一致吗
  • 经营性应付项目增加导致现金流量
  • 软件无形资产摊销年限是多久
  • 董事长费用可以在公司报销吗
  • 综保区和自贸区的联系
  • 一般纳税人增值税怎么做账务处理
  • 到银行购买结算凭证
  • 企业违约补偿收条怎么写
  • 单位风险金是什么意思
  • 递延收益怎么入账
  • 承包方收取分包方费用
  • 怎么看增值税专用发票是进项还是销项
  • 汽修厂纳税多少
  • 企业大中小型划分最新标准
  • 资产总计与负债和所有者权益总计不一致
  • 财务人员必备知识
  • 金税盘开红字发票
  • 库存股是实收资本吗
  • 银行抵押贷款结清后需要解押吗
  • 离职有补偿金的可不可以领取失业金
  • 已核销的应收账款
  • 用友t3怎样查询报表
  • 免抵退不得免征和抵扣是什么意思
  • 怎么租办公室省钱
  • 建筑公司可以开劳务吗
  • 增值税减免是当月报下月冲吗
  • 微信提现手续费最新规定
  • linux deepin怎么样
  • PHP:xml_set_end_namespace_decl_handler()的用法_XML解析器函数
  • php生成1到100的数组
  • PHP中time(),date(),mktime()区别介绍
  • 建筑业主营业务成本包括哪些
  • linux 命令行
  • 委托代销商品的特点及种类
  • uniapp自定义组件模式
  • kms.exe
  • wordpress项目开发
  • php redis常用命令
  • random_state=123
  • vue引入文件路径@的意思
  • php导出大量数据
  • chatbot下载
  • Sublime Text 4 (Build 4143) 注册方法STEP BY STEP
  • declare -i
  • 直接人工费用属于产品成本吗
  • 制造费用的作用
  • 本年利润会计处理流程
  • 房地产开发企业增值税税率
  • 材料成本差异的会计分录
  • 原始凭证审核要点包括
  • acca考试安排及时间
  • 材料退库的流程
  • 建设银行e信通介绍
  • 单位工程可以是一栋楼吗
  • 研发费用的核算方法
  • 企业职工食堂就餐收费
  • 三证合一办理流程及费用
  • 单位内部食堂怎么举报
  • 一般纳税人增值税税率
  • 集装箱发票是否要在备注栏注明地址
  • 离职员工代缴社保协议
  • 数据库查询排名
  • 建立iis
  • centos8 bond0
  • window7 aero
  • windows注销登录会怎样
  • win8.1检测不到更新
  • win7系统升级win10系统方法
  • jquery实现原理
  • android4.4w
  • cocos2d转unity难吗
  • nodejs例子
  • linux搭建ftp服务器
  • unity协程会阻塞主线程吗
  • 进项票当月认证怎么操作
  • 股权转让税收优惠个人所得税
  • 西安代驾平台有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设