python介面類,抽象類
阿新 • • 發佈:2018-11-20
# 支付方式不夠統一 class QQpay: def pay(self, money): print('QQ支付了%s錢' % money) class Alipay: def pay(self, money): print('支付寶支付了%s錢' % money) a1 = QQpay() a1.pay(100) b1 = Alipay() b1.pay(200)
# 統一支付方式:歸一化設計 class QQpay: def pay(self, money): print('QQ支付了%s錢' % money) class Alipay: def pay(self, money): print('支付寶支付了%s錢' % money) def pay(obj, money): # 歸一化設計 obj.pay(money) a1 = QQpay() b1 = Alipay() pay(a1, 100) pay(b1, 200)
# 狗哥,調離了部門,此時來了一個野生程式設計師。 class QQpay: def pay(self, money): print('QQ支付了%s錢' % money) class Alipay: def pay(self, money): print('支付寶支付了%s錢' % money) class Wechat: def fuqian(self,money): print('微信支付了%s錢' % money) def pay(obj, money): # 歸一化設計 obj.pay(money) a1 = QQpay() b1 = Alipay() pay(a1, 100) pay(b1, 200) c1= Wechat() c1.fuqian(300)
# 介面類:就是制定一個規則,讓其他人按照我的規則去寫程式。 約定俗稱規範,但是這個有人還不按照這個執行。
class payment: def pay(self,money): pass class QQpay(payment): def pay(self, money): print('QQ支付了%s錢' % money) class Alipay(payment): def pay(self, money): print('支付寶支付了%s錢' % money) class Wechat(payment): def fuqian(self, money): print('微信支付了%s錢' % money) def pay(obj, money): # 歸一化設計 obj.pay(money)
# 強制指定規範: from abc import ABCMeta, abstractmethod class payment(metaclass=ABCMeta): @abstractmethod def pay(self,money): pass class QQpay(payment): def pay(self, money): print('QQ支付了%s錢' % money) class Alipay(payment): def pay(self, money): print('支付寶支付了%s錢' % money) class Wechat(payment): def fuqian(self, money): print('微信支付了%s錢' % money) def pay(obj, money): # 歸一化設計 obj.pay(money) w = Wechat()
總結:
介面類其實就是遵循我的一些程式碼規範而做的