当前位置: 首页 > news >正文

python的抽象类和抽象方法

抽象类是一种不能直接被继承的类。举个例子,我们可以从类Creature衍生出类PeopleCats,其中前者两条腿走路,后者四条腿走路,而单独的类Creature却没有一个几条腿走路的方法,因为这是不确定的。

(关于装饰器,可查看https://blog.csdn.net/qq_45812220/article/details/137809943

我们直接上代码:

import abcclass A(metaclass=abc.ABCMeta):.abstractmethoddef mine(self):class B(A):def mine(self):print("123")b = B()

定义抽象类需要使用abc库,这里我们装饰了实例方法mine,实际上也可以装饰其他东西,读者可自己完成。

执行无输出,程序结束。我们成功定义了一个含有抽象方法mine的抽象类A,并由B继承它,完成了B的实例化

但如果我们执行下面的代码:

import abcclass A(metaclass=abc.ABCMeta):.abstractmethoddef mine(self):passclass B(A):passb = B()

程序会报错:

TypeError: Can't instantiate abstract class B with abstract method mine

也就是说,由于B继承自抽象类AB必须实现A中的所有抽象方法,我们才能顺利将B实例化。

http://www.lryc.cn/news/341213.html

相关文章:

  • Android MVVM架构学习——ViewModel DataBinding
  • 防抖与节流
  • 理解 Nginx 的多站点配置:为每个网站单独配置
  • 支持向量机模型pytorch
  • 轮转数组(力扣)
  • 批量插入10w数据方法对比
  • HAL STM32 I2C方式读取MT6701磁编码器获取角度例程
  • 如何排查nginx服务启动情况,杀死端口,以及防火墙开放指定端口【linux与nginx排查手册】
  • 用Rust实现免费调用ChatGPT的命令行工具 (一)
  • mysql 查询实战1-题目
  • Word学习笔记之奇偶页的页眉与页码设置
  • 数据赋能(58)——要求:数据赋能实施部门能力
  • Unity URP PBR_Cook-Torrance模型
  • Unity之XR Interaction Toolkit如何在VR中实现渐变黑屏效果
  • html+vue编写分页功能
  • 计算机网络 实验指导 实验17
  • 在 Vue中,v-for 指令的使用
  • 达梦数据库执行sql报错:数据溢出
  • 从「宏大叙事」到「生活叙事」,小红书品牌种草的的“正确姿势”
  • Python Selenium 的基本使用方法
  • 上位机图像处理和嵌入式模块部署(树莓派4b固件功能设计)
  • 新手入门人工智能:从零开始学习AI的正确途径
  • ubuntu git相关操作
  • IDEA工具|添加 GitLab 账户之两三事
  • 蓝桥杯:棋盘(Java)
  • 跨界融合:ERP与TMS的区分、相通之处、融合方式,全告诉你。
  • SAP Smartform转存PDF方法汇总
  • Linux【实战篇】—— NFS服务搭建与配置
  • Edge的使用心得与深度探索
  • 逆向案例二十八——红某点集登录接口逆向序