python -abc模块学习总结
python 没有提供抽象类与抽象方法。ABC(Abstract Base Class)模块提供了在Python中定义抽象类的方法。
abc模块有以下两个主要功能:
某种情况下,判定某个对象的类型,如:
isinstance(a, MyABC), issubclass(a, MyABC)
强制子类必须实现某些方法,即ABC类的派生类
abc.ABC
辅助类 ,可以不用关心元类的概念,直接继承就有了ABCMeta元类,使用时注意元类冲突。
abc.ABCMeta
该类用来定义抽象类的元类。使用该元类来定义一个抽象类。
定义一个抽象基类的方法是将一个类的元类设置为abc.ABCMeta。
具体化抽象基类的两种方式:
1、通过抽象基类 ABCMeta 的 register 方法注册。
from abc import ABCMeta,abstractmethod
class MyABC(metaclass=ABCMeta):
@abstractmethod
def amtest(self):
"""abstractf method"""
class RegisterImpl: