Python3 abc — 抽象基础类
在Python中,abc
模块提供了一个机制来定义抽象基类。抽象基类不能被实例化,它们的目的是为了定义接口。如果子类没有实现抽象基类中定义的抽象方法,则会抛出异常。
以下是一个使用abc
模块中的ABC
和abstractmethod
的例子:
import abc
class MyAbstractClass(abc.ABC):
@abc.abstractmethod
def my_abstract_method(self, arg):
pass
# 下面的类没有实现my_abstract_method,所以会在实例化时报错
# class MyErrorClass:
# pass
# 正确的实现方式
class MyConcreteClass(MyAbstractClass):
def my_abstract_method(self, arg):
print(f"Arg value: {arg}")
# 创建一个实例
concrete_instance = MyConcreteClass()
concrete_instance.my_abstract_method("Hello")
在这个例子中,MyAbstractClass
是一个抽象基类,它定义了一个抽象方法my_abstract_method
。MyConcreteClass
继承自MyAbstractClass
并实现了该方法。如果尝试实例化MyErrorClass
(如上注释所示),则会抛出异常,因为它没有实现必需的抽象方法。
评论已关闭