有时,我们抽象出一个基类,知道要有哪些方法,但只是抽象方法,并不实现功能,只能继承,
而不能被实例化,但子类必须要实现该方法。
import abc, six
@six.add_metaclass(metaclass=abc.ABCMeta)
class Base():
@abc.abstractmethod
def test(self):
pass
class Test(Base):
def test(self):
print("this is test")
t = Test()
t.test()
#b = Base()
#b.test()
但是注意,实例化Base,仍然是报错的,因为抽象基类只能继承而不能实例化,子类要实例化
必须先实现该方法。
为了理解抽象基类,你可以这样想,我们有水果这个抽象基类,有苹果,香蕉,桃子类等,但你永远只能
吃得到苹果,桃子这些,而不能吃到所谓的“水果”。
参考
https://blog.csdn.net/qq_42210792/article/details/95192654
网友评论