python @abstractmethod
时间: 2023-10-02 09:12:26 浏览: 244
Python2和Python3中@abstractmethod使用方法
@abstractmethod 是 Python 中的一个装饰器(decorator),用于定义抽象方法。抽象方法是在父类中声明但没有实现的方法,子类必须实现这些方法才能被实例化。
当一个方法被 @abstractmethod 装饰时,它的实现被省略,并且子类必须提供一个实现。如果子类没有提供实现,则在实例化时会抛出一个异常。
以下是一个使用 @abstractmethod 定义抽象方法的示例:
```python
from abc import ABC, abstractmethod
class MyAbstractClass(ABC):
@abstractmethod
def my_abstract_method(self):
pass
class MyClass(MyAbstractClass):
def my_abstract_method(self):
print("Implementing abstract method")
obj = MyClass()
obj.my_abstract_method()
```
在上面的示例中,MyAbstractClass 是一个抽象基类,其中的 my_abstract_method() 方法被定义为抽象方法。MyClass 是 MyAbstractClass 的子类,并且提供了 my_abstract_method() 方法的实现。当实例化 MyClass 类并调用 my_abstract_method() 方法时,将输出 "Implementing abstract method"。
如果 MyClass 没有提供 my_abstract_method() 方法的实现,那么在实例化时将引发 TypeError 异常。
阅读全文