引言
在面向对象编程(OOP)中,抽象基类(Abstract Base Class, ABC)提供了一种定义接口的方式,它允许你指定子类必须实现的方法。通过这种方式,你可以创建一个清晰的类层次结构,明确哪些方法必须由继承自该基类的所有类实现。这种模式特别适用于框架设计或需要强制某些行为一致性的场景。
基础语法介绍
在Python中,abc
模块提供了定义抽象基类所需的一切工具。首先,我们需要导入abc
模块,并利用@abstractmethod
装饰器来标记那些需要在子类中具体实现的方法。同时,可以通过继承ABC
类来确保一个类成为抽象基类。
示例代码
import abc
class MyAbstractBaseClass(metaclass=abc.ABCMeta):
@abc.abstractmethod
def do_something(self):
pass
class MyClass(MyAbstractBaseClass):
def do_something(self):
print("Doing something...")
try:
obj = MyAbstractBaseClass() # 这行会抛出TypeError,因为MyAbstractBaseClass不能实例化
except TypeError as e:
print(e)
obj = MyClass()
obj.do_something