# -*- coding: UTF-8 -*- #======================= 概念 =========================# """ 抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 """ #======================= 借助 abc模块实现抽象类 =========================# import abc # 利用 abc 模块实现抽象类 class Allfile(metaclass=abc.ABCMeta): all_type = 'file' @abc.abstractmethod # 定义抽象方法,无需实现功能 def read(self): '子类必须重写读功能' pass @abc.abstractmethod # 定义抽象方法,无需实现功能 def write(self): '子类必须重写读功能' pass class Txt(Allfile): pass t1 = Txt() # 报错,子类没有定义抽象方法 class Txt1(Allfile): def read(self): print('已经在子类中重写了 read 方法 ') def write(self): print('已经在子类中重写了 write 方法 ') t2 = Txt1() t2.read() #======================= 简单实现方式 =========================# class Base(): def read(self): raise NotImplementedError(".read method 方法必须被重写") class A(Base): pass obj = A() # 不报错 obj.read() # 调用方法就报错