# 设计模式 -- 接口
# 接口类:python原生不支持
# 抽象类:python原生支持
# 这是个规范:接口类或抽象类 都可以
# 接口类:支持多继承,接口类中的所有方法都必须不能实现
# 抽象类:不支持多继承,抽象类中的方法可以有一些代码的实现
# 这个模块可以检查与父类不符的方法 并提示出来(报错)
from abc import abstractmethod,ABCMeta
class Payment(metaclass=ABCMeta):
@abstractmethod
def pay(self,money):pass
class Wechat(Payment):
def pay(self,money):
print('微信支付:%s元'%(money))
class Alipay(Payment):
def pay(self,money):
print('支付宝支付:%s元'%(money))
class Applepay:
def fu(self,money):
print('apple支付:%s元'%(money))
def pay(pay_obj,money): # 统一入口
pay_obj.pay(money)
w = Wechat()
a = Applepay()
pay(w,100)
pay(a,200) # 这里会报错,并且会将错误原因提示给你