首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python抽象类介绍

Python抽象类介绍

作者头像
鳄鱼儿
发布2024-05-21 15:57:19
发布2024-05-21 15:57:19
2410
举报

抽象类

什么是抽象类

与java一样,python也有抽象类的概念。抽象类是一种特殊的类,它只能有抽象方法,不能被实例化,在子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。

抽象类的作用

抽象类可以实现多个子类中共用的部分,而不需要重复写到实现类中。

从设计角度去看,抽象类是基于类抽象而来的,是实现类的基类。

从实现角度来看,抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承,且实现子类必须继承并实现抽象类的方法。

python 3可以利用abc抽象基类实现,python文档说明:abc — 抽象基类

代码语言:javascript
复制
# 利用abc模块实现抽象类
from abc import ABCMeta
from abc import abstractmethod


class AllFile(metaclass=ABCMeta):
    """
    抽象类
    """
    type = 'file'

    @abstractmethod
    def read(self):
        """
        子类必须定义读功能
        :return:
        """
        pass

    @abstractmethod
    def write(self):
        """
        子类必须定义写功能
        :return:
        """
        pass


class File(AllFile):
    """
    子类继承抽象类,但是必须定义read和write方法
    """

    def read(self):
        print('文本数据的读取方法')

    def write(self):
        print('文本数据的读取方法')


txt = File()

txt.read()

print(txt.type)

上述程序运行输出

代码语言:javascript
复制
文本数据的读取方法
file

如果子类继承抽象类时,没有实现抽象方法,在调用子类时会报错

代码语言:javascript
复制
class Txt(All_file):
    pass
    
# 报错,子类没有定义抽象方法
txt1=Txt() 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 抽象类
    • 什么是抽象类
    • 抽象类的作用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档