1、抽象类概念

  抽象类是一个特殊的类,只能被继承,不能实例化

2、为什么要有抽象类

  其实在未接触抽象类概念时,我们可以构造香蕉、苹果、梨之类的类,然后让它们继承水果这个基类,水果的基类包含一个eat函数。

  但是你有没有想过,我们可以将香蕉、苹果、梨实例化,去吃香蕉、苹果、梨。但是我们却不能将水果实例化,因为我们无法吃到叫水果的这个东西。

  所以抽象类中只能有抽象方法(没有实现功能),该类不能被实例化,只能被继承,且子类必须实现抽象方法。

3、抽象类的作用

  在不同的模块中通过抽象基类来调用,可以用最精简的方式展示出代码之间的逻辑关系,让模块之间的依赖清晰简单。

  抽象类的编程,让每个人可以关注当前抽象类的方法和描述,而不需要考虑过多的实现细节,这对协同开发有很大意义,也让代码可读性更高。

4、抽象类的使用

import abc  # 利用abc模块实现抽象类class File(metaclass=abc.ABCMeta):  # abc.ABCMeta是实现抽象类的一个基础类@abc.abstractmethod  # 定义抽象方法,无需实现功能def read(self):passclass Txt(File):  # 子类继承抽象类,但是必须定义read方法将抽象类中的read方法覆盖def read(self):print('文本数据的读取方法')txt1 = Txt()
txt1.read()
txt2 = File()
txt2.read()

运行结果如下:

显然将抽象类实例化报错了,得到了我们想要的结果

5、abc模块在Python2&3的兼容问题

  为解决兼容性问题,我们需要引入six模块

转载于:https://www.cnblogs.com/Black-rainbow/p/9582826.html

Python抽象类(abc模块)相关推荐

  1. Python的ABC模块

    1.abc模块作用 Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助abc模块.ABC是Abstract Base Class的缩写. 2.模块中的类和函数 abc.ABCMeta 这 ...

  2. 学习Python的ABC模块

    http://yansu.org/2013/06/09/learn-python-abc-module.html 1.abc模块作用 Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助a ...

  3. Python之abc模块

    abc:Abstract Base Classes 作用:在代码中定义和使用抽象基类进行API检查. 1. 为什么使用abc? Abstract base classes由一组接口组成,检查比hasa ...

  4. Python:抽象基类(abc模块)

    抽象基类(abc模块) 介绍 白话理解 实用场景 介绍 该模块提供了一个元类 ABCMeta,可以用来定义抽象类,另外还提供一个工具类 ABC,可以用它以继承的方式定义抽象基类. 装饰器以" ...

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

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

  6. python 抽象类分析

    2019独角兽企业重金招聘Python工程师标准>>> 最近在看bottle.py源码,里面自定了多个类字典的类.这些类的定义继承了collections中多个抽象类.比如Mutab ...

  7. Python抽象类介绍

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

  8. python 抽象类、抽象方法、接口、依赖注入、SOLIP

    python 抽象类.抽象方法.接口.依赖注入.SOLIP 1.程序设计原则:SOLIP SOLIP设计原则 1.单一责任原则(SRP) 一个对象对只应该为一个元素负责 2.开放封闭原则(OCP) 对 ...

  9. python 抽象类的意义_python之抽象类

    1什么是抽象类 与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 2为什么要有抽象类 如果说类是从一堆对象中抽取相同 ...

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

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

最新文章

  1. 【Android View绘制体系】invalidate
  2. python版本的策略模式
  3. 【STM32】OLED 显示实验代码详解
  4. 数据中心在疫情期间发挥的作用
  5. 软考-信息系统项目管理师-信息系统项目管理基础
  6. Redis Sentinel集群部署
  7. Node.js Performance
  8. .net core 下使用StackExchange的Redis库访问超时解决
  9. strspn php,php返回在字符串中包含 charlist 参数中指定的字符数目的函数strspn()
  10. 计算机公式or,【转载】 odds、OR和RR的计算公式和实际意义
  11. html中右边线条怎么写,html5 三角形的线条怎么写
  12. css中 Span 元素的 width 属性无效果原因及多种解决方案
  13. 工业大数据分析平台有哪些价值
  14. 基于C#的socket编程的TCP异步实现
  15. [Java] 集合类(List、Set、Map的基本使用)
  16. 谷粒商城:02. 数据库初始化以及SQL语句
  17. 51单片机开发工具安装
  18. 破解防复制防刻录光盘
  19. C4D R18-R21
  20. 编程语言的分类与关系

热门文章

  1. Ubuntu做Tomcat服务:insserv: warning: script 'tomcat' missing LSB tags and overrides
  2. 判断一个js对象是否是Array
  3. tcp和udp协议的聊天 和udp协议的时间同步机制-----编码
  4. AC日记——丢瓶盖 洛谷 P1316
  5. Visual Studio中View页面与Js页面用快捷键互相跳转
  6. StructureMap 作为 ASP.NET MVC 的 DI 框架的使用实例
  7. XCode下的iOS单元测试(转)
  8. 用栈实现队列,实现Enqueue和Dequeue方法
  9. luogu2014 选课
  10. jQuery星级评分插件