前言
Python 是一种经过精心挑选的通用编程语言,适用于大型和小型应用程序。它支持多种编程范式,包括实用、过程和面向对象编程。Python 的广泛使用得益于其丰富的标准库、易读性以及强大的模块生态系统,使其成为数据科学和机器学习领域的理想选择。
在面向对象编程中,抽象是一个重要概念。抽象基类(Abstract Base Class, ABC) 是 Python 中实现这一概念的核心机制。
Python 中的基础知识
Python 并非完全面向对象的编程语言,但它通过内置的 abc 模块支持抽象类和抽象方法。我们不能直接创建抽象类,但可以使用 abc 模块提供的结构来定义它们。
什么是抽象基类? 抽象基类为具体类提供了蓝图。它们定义了接口规范,但通常不实现具体逻辑,需要子类继承并实现这些方法。
定义 ABC
要定义一个带有抽象方法的抽象类,我们需要导入 abc 模块并使用 ABC 基类和 @abstractmethod 装饰器。
from abc import ABC, abstractmethod
class Friend(ABC):
"""抽象基类:定义朋友的基本角色"""
@abstractmethod
def role(self):
"""抽象方法:必须由子类实现"""
pass
abc 模块还提供了 ABCMeta 元类,用于创建抽象类的底层结构。
ABC 在行动
下面展示如何创建一个抽象类,并通过继承在具体类中实现它。
# 具体子类 1
class Sachin(Friend):
def role(self):
return "Cricket Player"
# 具体子类 2
class Yashwant(Friend):
def role(self):
return "Developer"
# 具体子类 3
class Rishu():
():
friends = [Sachin(), Yashwant(), Rishu()]
f friends:
(f.role())


