Python 面向对象编程 四 抽象

Python 面向对象编程 四 抽象

抽象

抽象是面向对象编程(OOP)的另一个强大特性。它主要涉及隐藏实现细节,只显示对象的基本或高级特征。一个现实世界的例子是汽车。作为驾驶员,我们可以使用它的主要特征,但不知道该特征如何工作的真正细节,以及提供这些特征还涉及哪些其他对象。

抽象是一个与封装和继承相关的概念,这就是为什么我们首先理解封装和继承,把这个话题保留到最后。将此作为单独主题的另一个原因是强调在Python中抽象类的使用。

Python 中的抽象类

抽象类就像其他类的蓝图,抽象类不能被用来创建实例。抽象类允许您创建一组由子类实现的抽象方法(空)。简单来说,包含一个或多个抽象方法的类称为抽象类。另一方面,抽象方法是只有声明但没有实现的方法。

抽象类中可能存在已经实现的方法,并且可以通过继承被子类(按原样)使用。抽象类的概念对于实现应用程序编程接口(API)等常见接口非常有用,也有助于在一个地方定义子类可以重用的公共代码库。

Python 的包 abc 里有一个名字是 Abstract Base ClassesABC)的内建模块,我们可以使用它创建抽象类。abc 包里还有一个 AbstractMethod 模块,该模块使用装饰器声明抽象方法。下面是一个简单的例子,其中用到了 ABC 模块和 abstractmethod 装饰器:

from abc import ABC, abstractmethod

class 交通工具类(ABC):
    def 打招呼():
        print(f"来自抽象类的问候")

    @abstractmethod
    def 输出_自己():
        pass

class 小汽车类(交通工具类):
    def __init__(, 颜色, 品牌):.颜色 = 颜色
        我.品牌  = 品牌

    """小汽车类必须实现这个方法"""
    def 输出_自己():
        print(f"我是一只小汽车,依呀依呀哟,我的颜色是{.颜色},我的品牌是{.品牌}。")

if __name__ == "__main__":
    #交通工具 = 交通工具类() # 不能创建抽象类的实例
    小汽车  = 小汽车类("蓝色", "国威")
    小汽车.输出_自己()
    小汽车.打招呼()

在这个例子中,我们定义了一个抽象类交通工具类,并且用它做父类,定义了一个子类小汽车类小汽车类 实现了 交通工具类的抽象方法输出_自已,这是必须的。

不能直接创建交通工具类的实例,因为它是抽象类。

<未完待续>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dowhileprogramming

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

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

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

打赏作者

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

抵扣说明:

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

余额充值