1. 程式人生 > 實用技巧 >實現抽象類之方式一

實現抽象類之方式一

# 抽象類:
    # 是一個開發的規範,約束它的所有子類必須實現一些和它同名的方法

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): if
pay_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')