Python 的 ABC 入门

本文介绍了Python中的抽象基类(ABC)概念,包括如何定义抽象类和抽象方法,以及如何在具体类中实现它们。通过示例展示了如何使用abc模块创建抽象类,并探讨了抽象类的实例化、具体方法、抽象属性等知识点,强调了抽象类在确保子类遵循蓝图中的作用。
摘要由CSDN通过智能技术生成

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):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值