python中的抽象类

1.首先知道python中的抽象类其实就是一种代码规范,和前面两篇文章python中的单继承和python中的多继承说的都是一个道理归根到底都是为了代码规范,同样也是从Java中继承的思想,抽象类一般都是单继承,由于多个子类都需要继承同一个类,所以可以在抽象类中实现具体的方法,但是子类中还是要实现具体的方法,看下面的例子,抽象类中实现了文件打开和关闭操作,但是子类中还是定义了 读写功能,为了理解的简便还是可以直接理解成抽象类中不实现具体的方法,子类中必须实现具体的方法

import abc #利用abc模块实现抽象类class All_file(metaclass=abc.ABCMeta):all_type='file'@abc.abstractmethod #定义抽象方法,无需实现功能def read(self):'子类必须定义读功能'with open('filaname') as f:pass@abc.abstractmethod #定义抽象方法,无需实现功能def write(self):'子类必须定义写功能'passclass Txt(All_file): #子类继承抽象类,但是必须定义read和write方法def read(self):print('文本数据的读取方法')def write(self):print('文本数据的读取方法')class Sata(All_file): #子类继承抽象类,但是必须定义read和write方法def read(self):print('硬盘数据的读取方法')def write(self):print('硬盘数据的读取方法')class Process(All_file): #子类继承抽象类,但是必须定义read和write方法def read(self):print('进程数据的读取方法')def write(self):print('进程数据的读取方法')wenbenwenjian=Txt()yingpanwenjian=Sata()jinchengwenjian=Process()#这样大家都是被归一化了,也就是一切皆文件的思想
wenbenwenjian.read()
yingpanwenjian.write()
jinchengwenjian.read()print(wenbenwenjian.all_type)
print(yingpanwenjian.all_type)
print(jinchengwenjian.all_type)# 抽象类 : 规范
# 一般情况下 单继承 能实现的功能都是一样的,所以在父类中可以有一些简单的基础实现
# 多继承的情况 由于功能比较复杂,所以不容易抽象出相同的功能的具体实现写在父类中# 抽象类还是接口类 : 面向对象的开发规范 所有的接口类和抽象类都不能实例化
# java :
# java里的所有类的继承都是单继承,所以抽象类完美的解决了单继承需求中的规范问题
# 但对于多继承的需求,由于java本身语法的不支持,所以创建了接口Interface这个概念来解决多继承的规范问题# python
# python中没有接口类  :#  python中自带多继承 所以我们直接用class来实现了接口类
# python中支持抽象类  : 一般情况下 单继承  不能实例化#  且可以实现python代码

python中的抽象类相关推荐

  1. python的抽象类详解_第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类...

    第7.19节 Python中的抽象类详解:abstractmethod.abc与真实子类 一. 引言 前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不是以继 ...

  2. Python中的抽象类和抽象方法

    Python如何实现抽象类 在python中类 通过继承metaclass =ABCmeta类来创建抽象类,抽象类是包含抽象方法的类,其中ABCmeta类(Metaclass for defining ...

  3. python抽象类可以实例化吗,是否可以在Python中创建抽象类?

    这是一种非常简单的方法,无需处理ABC模块. 在__init__要成为抽象类的类的方法中,可以检查self的"类型".如果self的类型是基类,则调用方将尝试实例化基类,因此引发异 ...

  4. Python中抽象类和接口的区别

    Python中的抽象类和接口有什么区别? #1楼 用更基本的方式来解释:界面有点像空的松饼盘. 它是一个包含一组没有代码的方法定义的类文件. 抽象类是相同的,但并非所有函数都需要为空. 有些人可以有代 ...

  5. 如何理解Python中的面向对象

    一.认识面向对象是什么 面向过程的程序设计的核心就是过程,就是流水线式的思维,过程就是解决问题的步骤,面向过程的设计就好像一条设计好的流水线,考虑周全什么就处理什么东西. 优点在于极大地降低了写程序的 ...

  6. 第十二篇:python中的面向对象

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...

  7. 在Python中定义和使用抽象类的方法

    https://www.jb51.net/article/87710.htm 像java一样python也可以定义一个抽象类. 在讲抽象类之前,先说下抽象方法的实现. 抽象方法是基类中定义的方法,但却 ...

  8. python中继承和组合的区别_Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类...

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  9. python中append函数合并列表且列表内数字从高到低_35个高级Python知识点总结

    No.1 一切皆对象 众所周知,Java中强调"一切皆对象",但是Python中的面向对象比Java更加彻底,因为Python中的类(class)也是对象,函数(function) ...

最新文章

  1. selector与layer-list 单边框效果
  2. 20162318 2016-2017-2 《程序设计与数据结构》第7周学习总结
  3. 【渝粤题库】陕西师范大学152108 电子政务理论与实践 作业(高起专)
  4. python canvas画移动物体_Python GUI编程入门(25)-移动Canvas对象
  5. 日期选择器date、week、time、datetime、datetime-local类型
  6. 【网络拥塞管理和避免(队列调度算法FIFO/SP/RR/WRR/DRR/MDRR/WDRR/WFQ)】
  7. wxpython textctrl绑键盘事件_wxPython控件学习之TextCtrl(三)响应文本控件事件
  8. jenkins+pytest+allure接口自动化测试(windows环境)
  9. java for循环效率优化_java 优雅代码for循环 之性能调优
  10. 小白用python处理excel文件-python高手之路python处理excel文件(方法汇总)
  11. VMware vSphere 5.x 与 vSphere 6.0各版本功能特性对比
  12. 190122每日一句
  13. C语言编写的爱心代码
  14. 蓝桥杯历年真题分类汇总(史上最全版本,一定不要错过)
  15. 计算机硬件故障解决方法,计算机硬件故障分析与解决方法
  16. 菜鸟程序员成长之路(七)——2020年,你奋斗了吗?
  17. background-image使用
  18. png图片格式转换器_如何将图像转换为PNG格式
  19. 利用opencv棋盘格标定法对鱼眼图像校正分析
  20. 基于STM32智能小车->电机驱动

热门文章

  1. 浅谈a++ 与a--
  2. WSTMart开发文档
  3. 夏季室内甲醛净化 A.O.史密斯数显甲醛净化器让用户更放心
  4. 改写[转载]关闭危险端口的批处理文件FOR WIN7
  5. W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x419b4c50)
  6. java8 stream运行原理之并行流原理详解
  7. 华为路由器 单臂路由
  8. zoom 用法 flex zoom
  9. python数据分析 - numpy | ndarray数组 | numpy常用函数
  10. NYOJ 237 NYOJ 239 二分图 最大匹配模板题 游戏高手的烦恼 月老的难题 两个题一样