抽象类

什么是抽象类

与java一样,python也有抽象类的概念。抽象类是一种特殊的类,它只能有抽象方法,不能被实例化,在子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。

抽象类的作用

抽象类可以实现多个子类中共用的部分,而不需要重复写到实现类中。

从设计角度去看,抽象类是基于类抽象而来的,是实现类的基类。

从实现角度来看,抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承,且实现子类必须继承并实现抽象类的方法。

python 3可以利用abc抽象基类实现,python文档说明:abc — 抽象基类

# 利用abc模块实现抽象类
from abc import ABCMeta
from abc import abstractmethodclass AllFile(metaclass=ABCMeta):"""抽象类"""type = 'file'@abstractmethoddef read(self):"""子类必须定义读功能:return:"""pass@abstractmethoddef write(self):"""子类必须定义写功能:return:"""passclass File(AllFile):"""子类继承抽象类,但是必须定义read和write方法"""def read(self):print('文本数据的读取方法')def write(self):print('文本数据的读取方法')txt = File()txt.read()print(txt.type)

上述程序运行输出

文本数据的读取方法
file

如果子类继承抽象类时,没有实现抽象方法,在调用子类时会报错

class Txt(All_file):pass# 报错,子类没有定义抽象方法
txt1=Txt()

Python抽象类介绍相关推荐

  1. python代码案例详解-第7.20节 案例详解:Python抽象类之真实子类

    第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一. 案例说明 本节定义了图形 ...

  2. 第7.21节 Python抽象类—register注册虚拟子类

    上两节介绍了Python抽象类的真实子类的定义和使用,本节介绍另一种抽象类的实现方法:虚拟子类方法. 一.    相关概念 虚拟子类是将其他的不是从抽象基类派生的类"注册"到抽象基 ...

  3. Blender中的Python脚本介绍学习教程

    Blender中的Python脚本介绍学习教程 MP4 |视频:h264,1280×720 |音频:AAC,48000 Hz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:1.63 ...

  4. python软件界面-python软件界面介绍(python软件介绍)

    python软件界面介绍 1.接口初始化 当我们使用pycharm工具时,我们将遇到的第一个问题是,在进行各种配置后界面变得混乱时,我们该怎么办?我们应该还原,那么如何还原初始设置? 尽管此工具是从e ...

  5. python语言简介-Python语言介绍

    原标题:Python语言介绍 Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其 ...

  6. python语言介绍-00-python语言介绍

    以下为摘录的python的介绍 Python是一种解释型语言.这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译.其他解释型语言还包括PHP和Ruby. Python是动态类型 ...

  7. python介绍和用途-Python基础介绍(一)

    Python基础介绍(一) 1. python是什么编程语言 编译型与解释型 ​编译器吧源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以极其语言来运行此程序,速度很快 ...

  8. python介绍和用途-python应用领域介绍

    python应用领域介绍Python作为一种功能强大且通用的编程语言而广受好评,它具有非常清晰的语法特点,适用于多种操作系统,目前在国际上非常流行,正在得到越来越多的应用. 下面就让我们一起来看看它的 ...

  9. python模块介绍-locustio:性能测试工具locustio

    转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...

最新文章

  1. Android线程之主线程向子线程发送消息
  2. 使用dynamic特性处理XML文档
  3. 问答:双总线并机,可以使用不同品牌的ups吗?
  4. CodeForces - 1307B Cow and Friend(数学+思维)
  5. php删除文见,php如何删除文件夹
  6. 为什么python删除不了_为什么python的imp.reload()不会删除旧的类和函数?
  7. 学Web前端开发需要哪些基础?零基础小白该怎么入行?
  8. R语言ggplot2包之画折线图
  9. java 向后台传两个json数据类型_前台向后台传递JSON字符串,处理JSON字符串类型的方法...
  10. 机器学习导论——关于数据集的概念
  11. 电视剧《大秦赋》最近很火!于是我用Python抓取了“相关数据”,发现了这些秘密.........
  12. 信号处理之FIR数字滤波器(Matlab仿真)
  13. nuxt 引入第三方字体、艺术字效果
  14. mysql数据库导出数据乱码问题_Mysql数据库导出来的是乱码如何解决
  15. 埃森哲2021财年第三季度全球营收达133亿美元;富士胶片创新解决方案新成员亮相CHINA PRINT 2021 | 全球TMT...
  16. java如何实现获取客户端公网IP地址?若不会,我手把手教你|非常详细,建议收藏
  17. oracle 连接 双网卡,Oracle Linux 6.4(BOND)双网卡绑定实战—附加说明
  18. qutip+mayavi可视化波片对光偏振态的影响
  19. matlab导出畸变系数,鱼眼镜头参数表,如何拟合并求出系数
  20. Matlab对科氏力建模,A.升级交换机内的软件B.加装一个内部路由器C.在服务器上安装ARP防火墙D.在内部网的每台主机上...

热门文章

  1. LeetCode 637. Average of Levels in Binary Tree
  2. usb设备由生产到使用 java 114979888
  3. 下载java的jdk
  4. django-orm框架了解
  5. 为什么私有GIT服务器上无法查看上传的代码?
  6. 人生是自己的选择,双11技术大队长的育女心经
  7. 分数的表示以及计算(c++)
  8. Python 数据类型 list(1)
  9. SOFA 源码分析 — 扩展机制
  10. 到底该不该上马Vista 中小企业升级全攻略(上)