当我们定义了多个类并且想使用其中相同的功能,我们可以使用接口来帮助我们简化代码量。
例如:我们做一个支付的接口的时候,我们定义了三个类。分别是wechat,支付宝和applepay去支付,我们想要交付到用户手上使用时直接通过这个用户选择接口来实现。
from abc import abstractclassmethod,ABCMeta class Payment(metaclass=ABCMeta):#元类,默认的元类为type @abc.abstractclassmethod def pay(self,money): raise NotImplemented #没有实现这个方法。 #主动抛出一个异常。 #规范:接口类或者抽象类都可以 #接口类:默认多接口,接口类的所有的方法都必须不能实现。——java #抽象类:不支持多继承,抽象类中方法可以有一些代码的实现——Java class Wechat: def pay(self,money): print('已经使用微信支付了%s元'%money) class Alipay: def pay(self,money): print('已经使用支付宝支付了%s元'%money) class Applepay: def payl(self,money): print('已经使用apple支付了%s元'%money) def pay(pay_obi,money):#统一支付入口 pay_obi.pay(money) wechat = Wechat() alipay = Alipay() apple = Applepay() pay(wechat,100) pay(alipay,1030) pay(apple,1030)
这个程序有点问题,就是python在3.3版本的时候就弃用
abstractclassmethod
在接口规范那块应该是直接装饰
@abstractclassmethod
我用的版本是python3.6的。等我找到最新的方法后再回来更新。