Python抽象类(abc模块)

一、抽象类概念

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

二、为何要有抽象类

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

  可是你有没有想过,咱们能够将香蕉、苹果、梨实例化,去吃香蕉、苹果、梨。可是咱们却不能将水果实例化,由于咱们没法吃到叫水果的这个东西。spa

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

三、抽象类的做用

  在不一样的模块中经过抽象基类来调用,能够用最精简的方式展现出代码之间的逻辑关系,让模块之间的依赖清晰简单。blog

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

四、抽象类的使用

import abc  # 利用abc模块实现抽象类


class File(metaclass=abc.ABCMeta):  # abc.ABCMeta是实现抽象类的一个基础类
    @abc.abstractmethod  # 定义抽象方法,无需实现功能
    def read(self):
        pass


class Txt(File):  # 子类继承抽象类,可是必须定义read方法将抽象类中的read方法覆盖
    def read(self):
        print('文本数据的读取方法')


txt1 = Txt()
txt1.read()
txt2 = File()
txt2.read()

运行结果以下:开发

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

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

  为解决兼容性问题,咱们须要引入six模块import

相关文章
相关标签/搜索