小白學python之多重繼承_學習筆記

本文以廖雪峯的官方網站爲參考來學習python的。其學習鏈接爲廖雪峯小白學python教程

本文是學習到python的多重繼承。參考鏈接廖雪峯python多重繼承

本學習筆記僅供參考。

class Animal(object):
    pass

#大類
class Mammal(Animal):
    pass

class Bird(Animal):
    pass

#各種動物:
class Dog(Mammal):
    pass

class Bat(Mammal):
    pass

class Parrot(Bird):
    pass

class Ostrich(Bird):
    pass

class Runnable(object):
    def run(self):
        print("Runing...")

class Flyable(object):
    def fly(self):
        print("Flying...")

class Dog(Mammal,Runnable):
    pass

class Bat(Mammal,Flyable):
    pass

筆記

MixIn:

在設計類的繼承關係時,通常,主線都是單一繼承下來的。

如果需要“混入”額外功能,可以通過多態繼承來實現。

上面代碼還可以定義肉食動物CarnivorousMixIn和植食動物HerbivoresMixln,讓某個動物同時擁有好幾個Mixln。

筆記

MixIn的目的就是給一個類增加多個功能。在設計類時,優先考慮通過多重繼承來組合多個Mixln功能,而不是設計多層的複雜的繼承關係。

筆記

Python自帶很多庫也使用了MixIn。例如:python自帶了TCPServer和UDPServer這兩類網絡服務器,而要服務多個用戶就必須使用多線程和多進程模型。這兩種模型由ForkingMixIn和ThreadingMixIn提供。通過組合可以創造出合適的服務來。

 

筆記

小結:

由於python允許使用多重繼承,因此MixIn是一種常見的設計。

只允許單一繼承的語言(如Java)不能使用Mixln的設計

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章