python 接口类和抽象类

接口类

首先要知道的就是,不管是接口类还是抽象类,都是一种设计模式,是面对对象开发规范

而这种设计模式是java提出来的,java还有很多类似的东西被其它编程语言沿用

接口类是java为了实现多继承,设计的一个概念

python原生并没有接口类这一概念,但是为了实现接口隔离原则,而划分出来的

接口隔离原则:

使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些不需要的接口

因为python天生能实现多继承,所以并没有接口类

应该算符合原则,强行区分出来这么一类吧

from abc import abstractmethod,ABCMeta   #这里是为了实现接口类调用的模块
class Payment(metaclass=ABCMeta):   #在这里声明metaclass=ABCMeta
    @abstractmethod                  #然后这里一个语法糖调用abstractmethod,就声明这个类是接口类
    def pay(self,money):pass

一但声明一个接口类,接口类中的所有方法都必须不能实现

抽象类

抽象类也是面对对象开发规范

一般情况下单继承能实现的功能都是一样的

多继承的情况忧郁功能比较复杂,所以不容易抽象出相同的功能能的具体实现写在父类中

python中支持抽象类:一般情况下 单继承

          且可以实现python代码

抽象类和接口类都不能实例化

import abc #利用abc模块实现抽象类
class All_file(metaclass=abc.ABCMeta):
    all_type='file'
    @abc.abstractmethod #定义抽象方法,无需实现功能
    def read(self):
        '子类必须定义读功能'
        with open('filaname') as f:
            pass
class Txt(All_file): #子类继承抽象类,但是必须定义read和write方法
    def read(self):
        print('文本数据的读取方法')
wenbenwenjian=Txt()
print(wenbenwenjian.read())

文本数据的读取方法

转载于:https://www.cnblogs.com/GrandDarkness/p/8318511.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值