Python抽象类介绍

抽象类

什么是抽象类

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

抽象类的作用

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

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

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

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

# 利用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)

上述程序运行输出

文本数据的读取方法
file

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

class Txt(All_file):
    pass
    
# 报错,子类没有定义抽象方法
txt1=Txt() 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鳄鱼儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值