Python接口类规范过程

接口和抽象的作用:用来规范子类的撰写。

from abc import abstractclassmethod,ABCMeta

'''
#接口类:默认多继承,接口类中所有的方法都必须不实现。是从JAVA中演化过来的。如果你非要在方法里面写也是可以的,只是一般不建议写。
#抽象类:不支持多继承,抽象类中方法可以有一些代码的实现 ,也是从JAVA中有的概念。如果你不能理解这两种类,你就理解成一种。他们的作用就是为了规范子类
'''
class payment(metaclass=ABCMeta):

    @abstractclassmethod
    def pay(self,money):
        pass

class Apliba(payment):
    def pay(self,money):
        print('用支付宝支付的%s'%money)
class WeiXin(payment):
    def pay(self,money):
        print('用微信支付的%s'%money)

class appleZhifu(payment):
    def zhifu(self,money):
        print('用苹果支付的%s'%money)

def pay(pay_obj,money):
    pay_obj.pay(money)

pay(WeiXin(),100)
pay(appleZhifu(),100)

执行结果:

"D:\Program Files\Python\python.exe" F:/Users/Administrator/PycharmProjects/SchoolManagerSys/core/Study.py
Traceback (most recent call last):
用微信支付的100
  File "F:/Users/Administrator/PycharmProjects/SchoolManagerSys/core/Study.py", line 28, in <module>
    pay(appleZhifu(),100)
TypeError: Can't instantiate abstract class appleZhifu with abstract methods pay

Process finished with exit code 1
这里的TypeError: Can't instantiate abstract class appleZhifu with abstract methods pay。可以直观地看出来本应该写pay方法的,但程序员错写成了appleZhifu。

转载于:https://www.cnblogs.com/hisweety/p/10286207.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值