Python抽象类介绍
抽象类
什么是抽象类
与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抽象类介绍相关推荐
- python代码案例详解-第7.20节 案例详解:Python抽象类之真实子类
第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍. 一. 案例说明 本节定义了图形 ...
- 第7.21节 Python抽象类—register注册虚拟子类
上两节介绍了Python抽象类的真实子类的定义和使用,本节介绍另一种抽象类的实现方法:虚拟子类方法. 一. 相关概念 虚拟子类是将其他的不是从抽象基类派生的类"注册"到抽象基 ...
- Blender中的Python脚本介绍学习教程
Blender中的Python脚本介绍学习教程 MP4 |视频:h264,1280×720 |音频:AAC,48000 Hz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:1.63 ...
- python软件界面-python软件界面介绍(python软件介绍)
python软件界面介绍 1.接口初始化 当我们使用pycharm工具时,我们将遇到的第一个问题是,在进行各种配置后界面变得混乱时,我们该怎么办?我们应该还原,那么如何还原初始设置? 尽管此工具是从e ...
- python语言简介-Python语言介绍
原标题:Python语言介绍 Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其 ...
- python语言介绍-00-python语言介绍
以下为摘录的python的介绍 Python是一种解释型语言.这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译.其他解释型语言还包括PHP和Ruby. Python是动态类型 ...
- python介绍和用途-Python基础介绍(一)
Python基础介绍(一) 1. python是什么编程语言 编译型与解释型 编译器吧源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以极其语言来运行此程序,速度很快 ...
- python介绍和用途-python应用领域介绍
python应用领域介绍Python作为一种功能强大且通用的编程语言而广受好评,它具有非常清晰的语法特点,适用于多种操作系统,目前在国际上非常流行,正在得到越来越多的应用. 下面就让我们一起来看看它的 ...
- python模块介绍-locustio:性能测试工具locustio
转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...
最新文章
- Android线程之主线程向子线程发送消息
- 使用dynamic特性处理XML文档
- 问答:双总线并机,可以使用不同品牌的ups吗?
- CodeForces - 1307B Cow and Friend(数学+思维)
- php删除文见,php如何删除文件夹
- 为什么python删除不了_为什么python的imp.reload()不会删除旧的类和函数?
- 学Web前端开发需要哪些基础?零基础小白该怎么入行?
- R语言ggplot2包之画折线图
- java 向后台传两个json数据类型_前台向后台传递JSON字符串,处理JSON字符串类型的方法...
- 机器学习导论——关于数据集的概念
- 电视剧《大秦赋》最近很火!于是我用Python抓取了“相关数据”,发现了这些秘密.........
- 信号处理之FIR数字滤波器(Matlab仿真)
- nuxt 引入第三方字体、艺术字效果
- mysql数据库导出数据乱码问题_Mysql数据库导出来的是乱码如何解决
- 埃森哲2021财年第三季度全球营收达133亿美元;富士胶片创新解决方案新成员亮相CHINA PRINT 2021 | 全球TMT...
- java如何实现获取客户端公网IP地址?若不会,我手把手教你|非常详细,建议收藏
- oracle 连接 双网卡,Oracle Linux 6.4(BOND)双网卡绑定实战—附加说明
- qutip+mayavi可视化波片对光偏振态的影响
- matlab导出畸变系数,鱼眼镜头参数表,如何拟合并求出系数
- Matlab对科氏力建模,A.升级交换机内的软件B.加装一个内部路由器C.在服务器上安装ARP防火墙D.在内部网的每台主机上...