推荐答案
-- -------------------- ---- ------- ---- --- ------ ---- -------------- ----- --------------------- --------------- --- ------------------------- ---- --- ------------------------- ----------- -- - -------- ---------
本题详细解读
1. 导入 abc
模块
要创建抽象基类,首先需要从 abc
模块中导入 ABC
类和 abstractmethod
装饰器。
from abc import ABC, abstractmethod
2. 定义抽象基类
通过继承 ABC
类来定义一个抽象基类。ABC
是 Python 中用于创建抽象基类的基类。
class MyAbstractClass(ABC):
3. 使用 @abstractmethod
装饰器
在抽象基类中,使用 @abstractmethod
装饰器来标记抽象方法。抽象方法没有具体的实现,子类必须重写这些方法。
@abstractmethod def my_abstract_method(self): pass
4. 定义具体方法
抽象基类中也可以包含具体方法,这些方法可以有默认的实现,子类可以选择是否重写它们。
def my_concrete_method(self): print("This is a concrete method.")
5. 子类实现抽象方法
任何继承自抽象基类的子类都必须实现所有抽象方法,否则在实例化时会抛出 TypeError
。
class MyConcreteClass(MyAbstractClass): def my_abstract_method(self): print("Implemented abstract method.")
6. 实例化子类
只有实现了所有抽象方法的子类才能被实例化。
obj = MyConcreteClass() obj.my_abstract_method() # 输出: Implemented abstract method. obj.my_concrete_method() # 输出: This is a concrete method.
通过这种方式,abc
模块提供了一种机制来定义抽象基类,并确保子类实现了必要的抽象方法。