一、抽象类
用抽象类定义基类,抽象类中定义相应的接口方法,子类继承实现。 注意:抽象类不可被实例化
使用abc模块下的ABCMeta定义一个抽象类。
abstractmethod来定义一个抽象方法,其抽象方法必须在子类中实现。如果在非抽象类好像可以用 raise NotImplementedError
from abc import ABCMeta, abstractmethod
class BaseClass(metaclass=ABCMeta):
def __init__(self, msg):
print("create baseclass!")
print(msg)
print('----------')
@abstractmethod
def fn(self):
print('implement')
然后使用继承的方法来具体化,还有一种是注册,我不太熟悉
class ChildClass(BaseClass):
def __init__(self, msg):
super().__init__(msg)
def fn(self):
super().fn()
print('OK')
test = ChildClass('hello')
test.fn()
运行结果: