python抽象类和接口的区别_python--接口类与抽象类

一、

继承有两种用途:

"""一:继承基类的方法,并且做出自己的改变或者扩展(代码重用)

二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)

且并未实现接口的功能,子类继承接口类,并且实现接口中的功能

三、接口隔离原则:使用多个专门的接口,而不使用单一的总接口。即客户端不应该依赖那些不需要的接口"""

"""接口类:基于同一个接口实现的类 刚好满足接口隔离原则 面向对象开发的思想 规范

接口类,python 原生不支持 在python中,并没有接口类这种东西,即便不通过专门的模块定义接口,我们也应该有一些基本的概念"""

一、接口类单继承

我们来看一段代码去了解为什么需要接口类

classAlipay:defpay(self,money):print('支付宝支付了')classApppay:defpay(self,money):print('苹果支付了')classWeicht:defpay(self,money):print('微信支付了')def pay(payment,money): #支付函数,总体负责支付,对应支付的对象和要支付的金额

payment.pay(money)

p=Alipay()

pay(p,200) #支付宝支付了

这段代码,实现了一个有趣的功能,就是通过一个总体的支付函数,实现了不同种类的支付方式,不同是支付方式作为对象,传入函数中

但是开发中容易出现一些问题,那就是类中的函数名不一致,就会导致调用的时候找不到类中对应方法,例题如下:

classAlipay:def paying(self,money): #这里类的方法可能由于程序员的疏忽,写的不是一致的pay,导致后面调用的时候找不到pay

print('支付宝支付了')classApppay:defpay(self,money):print('苹果支付了')classWeicht:defpay(self,money):print('微信支付了')def pay(payment,money): #支付函数,总体负责支付,对应支付的对象和要支付的金额

payment.pay(money)

p=Alipay() #不报错

pay(p,200) #调用执行就会报错,'Alipay' object

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值