from abc import ABCMeta, abstractmethod
class Payment(metaclass=ABCMeta): @abstractmethod def pay(self, money): pass class Alipay(Payment): def pay(self, money): print('支付宝支付%s' %money) class Wechatpay(Payment): def pay(self, money): print('微信支付%s' %money) # Press the green button in the gutter to run the script. if __name__ == '__main__': p = Wechatpay() p.pay(1000)
通过声明抽象接口Payment,使得Alipay和Wechatpay有相同的样子供调用。
Alipay和Wechatpay分别实现了Payment接口。
接口:就是若干抽象方法的集合。
接口作用:限制了实现接口的类,必须按照给定的方式来实现这些方法。对更高层代码(调用此功能的代码)隐藏了内部的实现,即细节。