Python的ABC是什么?它代表抽象基类,是基于抽象的Python类中的一个概念。抽象是面向对象编程的一个组成部分。
抽象就是我们所说的对用户隐藏程序的内部过程。以电脑鼠标为例,我们点击左键或右键,相应的事情就会发生,或者滚动鼠标滚轮,特定的任务就会发生。我们不知道内部功能,但我们知道单击此按钮将完成我们的工作。
在抽象中,用户不知道内部功能,但熟悉该方法的目的。如果我们以模块为例datetime,我们确实知道运行该datetime.now()函数将返回当前日期和时间,但不知道这是如何发生的。
Python 中的基础知识
Python 不是完全面向对象的编程语言,但它支持抽象类和抽象等特性。我们不能直接在 Python 中创建抽象类,因此 Python 提供了一个名为 abc 的模块,它提供了定义抽象基类 (ABC) 基类的基础结构。
什么是抽象基类?它们为具体类提供了蓝图。它们只是定义但没有实现,而是需要子类来实现。
定义 ABC
让我们通过一个例子来理解我们如何定义一个带有抽象方法的抽象类。
from abc import ABC, abstractmethod
class Friend(ABC):
@abstractmethod
def role(self):
pass
类Friend派生自模块ABC中的类abc,使其成为抽象类,然后在类内部,@abstractmethod定义了一个装饰器来表明函数角色是一个抽象方法。
abc模块有另一个ABCMeta用于创建抽象类的类。
from abc import ABCMeta, abstractmethod
class Friend(metaclass=ABCMeta):
@abstractmethod
def role(self):
pass
ABC 在行动
现在我们将看到如何创建一个抽象类和抽象方法,然后通过继承在具体类中实现它。
from abc import ABC, abstractmethod
Defining abstract class
class Friends(ABC):
“”“abstract method decorator to indicate that the
method right below is an abstract method.”“”
@abstractmethod
def role(self):
pass
Concrete derived class inheriting from abstract class
class Sachin(Friends):
# Implementing abstract method
def role(self):
print(‘Python Developer’)
Concrete derived class inheriting from abstract class
class Rishu(Friends):
# Implementing abstract method
def role(self):