版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
定义抽象类和抽象方法,如果某类继承了抽象类,必须重写抽象方法,否则会报错。
from abc import ABCMeta, abstractmethod
class Base(object, metaclass=ABCMeta): # 定义一个抽象类
def f1(self):
print('f1')
@abstractmethod
def f2(self):
'''
抽象方法
:return:
'''
pass
class Foo(Base):
pass
obj = Foo()
'''
如果没有重写抽象方法,不能实例化类
Can't instantiate abstract class Foo with abstract methods f2
'''
需要重写了抽象类的f2方法:
from abc import ABCMeta, abstractmethod
class Base(object, metaclass=ABCMeta): # 定义一个抽象类
def f1(self):
print('f1')
@abstractmethod
def f2(self):
'''
抽象方法
:return:
'''
pass
class Foo(Base):
def f2(self):
pass
obj = Foo()