實現抽象類之方式一
阿新 • • 發佈:2020-08-20
# 抽象類: # 是一個開發的規範,約束它的所有子類必須實現一些和它同名的方法 class Pay(object): # 抽象類 def pay(self, money): """只要見到專案中有這種類,你的子類中必須實現和play同名的方法""" raise NotImplementedError('請在子類中重寫與父類同名的方法') class AliPay(Pay): def __init__(self, name): self.name = name def pay(self, money): dic= {'uname':self.name, 'price':money} print(f'{self.name}通過支付寶成功支付{money}元!') class WeChatPay(Pay): def __init__(self, name): self.name = name def pay(self, money): dic = {'uname':self.name, 'price':money} print(f'{self.name}通過微信成功支付{money}元!') class ApplePay(Pay):def __init__(self, name): self.name = name def pay(self, money): dic = {'uname': self.name, 'price': money} print(f'{self.name}通過蘋果支付支付了{money}元!') # aw = WeChatPay('alex') # aw.pay(400) # # aa = AliPay('wusir') # aa.pay(300) # 歸一化設計: def pay(name, price, pay_kind): ifpay_kind == 'WeChat': obj = WeChatPay(name) elif pay_kind == 'AliPay': obj = AliPay(name) elif pay_kind == 'ApplePay': obj = ApplePay(name) obj.pay(price) pay('alex', 400, 'WeChat') pay('wusir', 300, 'AliPay') pay('eva-j', 500, 'ApplePay')