from abc import abstractmethod.ABCmeta
class Payment(mataclass = ABCmeta): #元类 默认的元类 type
@abstractmethod
def pay(self,money):pass
接口类或者抽象类都是为了规范子类
python有抽象类,没有接口类,只是一种概念
#接口类 默认多继承,接口类中的方法都必须不能实现——源自java理念
#抽象类 不支持多继承,抽象类中方法可以有一些代码实现——源自java理念
#一般情况下单继承能实现的功能都是一样的,所以在父类中可以有一些简单的基础实现
#多继承的情况下由于功能比较复杂,所以不容易抽象出相同的功能的具体实现写在父类中
#####################################################
class Wechat(Payment):
def pay(self, money):
print('已使用微信支付了%s元',%money)
class Alipay(Payment):
def pay(self, money):
print('已使用支付宝支付了%s元',%money)
def pay(pay_obj,money): #统一支付入口
pay_obj.pay(money)
wechat = Wechat()
ali = Alipay()
pay(wechat,1000)
#################################################