作用

  • 强制子类实现方法(类似 Java 接口)

流程

  1. 定义抽象类

    1
    2
    3
    4
    5
    6
    7
    
    import abc
    
    
    class CopyBase(metaclass=abc.ABCMeta):
        @abc.abstractmethod   # 必须实现的方法
        def save(self):
            pass
  2. 定义子类,实现类

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    class CopyPaper(CopyBase):
        def __init__(self):
            pass
    
        def save(self):
            print("copy paper")
    
    
    class CopyQuestion(CopyBase):   # 没有实现 抽象方法
        def __init__(self):
            pass
  3. 测试

    1
    2
    3
    4
    
    copy_paper = CopyPaper()
    copy_paper.save()
    copy_question = CopyQuestion()
    copy_question.save()   # * 报错

抽象类的python 属性(字段)重载

通过 @abstractmethod@property 装饰器实现