首页 > 其他 > 详细

面向对象————抽象类

时间:2019-02-25 00:53:14      阅读:206      评论:0      收藏:0      [点我收藏+]

当我们面向对象设计一个代码的时候,通常我们调用接口的时候,会调用同一个属性,比如:

class applePay(object):
    def pay(self,money):
        print(已经用applepay支付了%s%money)
class alilePay(object):
    def pay(self,money):
        print(已经用alipay支付了%s%money)
def pay(obj,money):
    return obj.pay(money)
a = applePay()
pay(a,20)

这时候会像我们显示出  ‘已经用applepay支付了20’ 。但是,现在来了一个新的菜鸟程序员,让他再实现一个wechatpay的功能,菜鸟一看,这么简单,于是在原有代码的基础上又加上了一段:

class applePay(object):
    def pay(self,money):
        print(已经用applepay支付了%s%money)
class alilePay(object):
    def pay(self,money):
        print(已经用alipay支付了%s%money)
def pay(obj,money):
    return obj.pay(money)
class Wechatpay(object):
    def fuqian(self,money):
        print(已经用Wechat支付了%s%money)
a = Wechatpay()
pay(a,20)


AttributeError: ‘Wechatpay‘ object has no attribute ‘pay‘

这时候,肯定会报错,他不知道付钱用的统一接口是pay这个函数命名的,怎么办呢,这时候通常为了验证这种情况,有一个abc模块(python系统自带的)这时候,将代码改成如下:

 

面向对象————抽象类

原文:https://www.cnblogs.com/zz1314/p/10428784.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!