天天看點

python基礎-多态類

多态 python 天生支援多态

def func(int num,str name):
    pass

func('alex',2)
class Payment:pass

class Alipay():
    def pay(self,money):
        print('已經用支付寶支付了%s元' % money)

class Applepay():
    def pay(self,money):
        print('已經用applepay支付了%s元' % money)

def pay(pay_obj,money):  # 統一支付入口  歸一化設計
    pay_obj.pay(money)

pay()
           

什麼是多态

python 動态強類型的語言

鴨子類型

list tuple

不崇尚根據繼承所得來的相似

我隻是自己實作我自己的代碼就可以了。

如果兩個類剛好相似,并不産生父類的子類的兄弟關系,而是鴨子類型

list tuple 這種相似,是自己寫代碼的時候限制的,而不是通過父類限制的

優點 : 松耦合 每個相似的類之間都沒有影響

缺點 : 太随意了,隻能靠自覺

class List():
    def __len__(self):pass
class Tuple():
    def __len__(self):pass

def len(obj):
    return obj.__len__()

l = Tuple()
len(l)
           

#強類型語言 多态

#python 語言 鴨子類型

接口類和抽象類 在python當中的應用點并不是非常必要