Python 中的多重繼承

文章推薦指數: 80 %
投票人數:10人

這通常是在繼承開始跨越路徑時出現歧義的情況下完成的,即當兩個父類也從超級基類派生時。

例如,. Python. pythonCopy class Animals: def __init__ ... Python貼士 Python中的條件賦值運算子 使用Python播放Mp3檔案 使用Python檢查作業系統 在Python中從字串中刪除逗號 Python中如何將位元組bytes轉換為整數int 如何將整型int轉換為位元組bytes 如何在Python中獲取和增加最大遞迴深度 如何建立和啟用Python虛擬執行環境virtualenv reportthisad 貼士文章 Python貼士 Python中的多重繼承 繼承允許我們在子類中使用父類的特性,它是物件導向程式設計的一個基本特性。

它有助於從父類到子類的資料的可重用性和可傳遞性,並補償資料丟失。

多重繼承是指子類從兩個或多個父類繼承方法和功能。

一次匯出所有資料是有益的。

儘管如此,另一方面,它帶來了使用的複雜性和歧義。

如果多個父母擁有相同的特徵,那麼分辨哪個特徵來自哪個父母是不明確的。

它發生在未正確使用或實現多重繼承時。

虛擬繼承、方法解析順序(MRO)的使用和super()函式可以以某種方式降低其風險。

我們在以下程式碼中看到了多重繼承的基本示例。

classFather(): defdrive(self): print("Fatherdriveshissontoschool") classMother(): defcook(self): print("Motherlovestocookforherson") classSon(Father,Mother): deflove(self): print("IlovemyParents") c=Son() c.drive() c.cook() c.love() 輸出:风水2023年的颜色提示fsPleaseenableJavaScript风水2023年的颜色提示fs Fatherdriveshissontoschool Motherlovestocookforherson Ilovemyparents 子類Son派生自父類Father和Mother,這允許它使用函式drive()和cook()來提供所需的輸出。

super()函式引用繼承子類中的父類或兄弟類,並返回一個臨時物件,該物件允許子類使用所有超類方法。

這通常是在繼承開始跨越路徑時出現歧義的情況下完成的,即當兩個父類也從超級基類派生時。

例如, classAnimals: def__init__(self,animalsName): print(animalsName,'isananimal.'); classMammal(Animals): def__init__(self,Name): print(Name,'isamammal.') super().__init__(Name) classdonotFly(Mammal): def__init__(self,name): print(name,"cannotfly.") super().__init__(name) classdonotSwim(Mammal): def__init__(self,name): print(name,"cannotswim.") super().__init__(name) classCat(donotSwim,donotFly): def__init__(self): print('Acat.'); super().__init__('Cat') cat=Cat() print('') bat=donotSwim('Bat') 輸出: Acat. Catcannotswim. Catcannotfly. Catisamammal. Catisananimal. Batcannotswim. Batisamammal. Batisananimal. 建立了一個子類Cat,由兩個父類donotswim和donotfly繼承。

然後,哺乳動物類自己繼承它們。

Mammals類還繼承了超類Animals的屬性。

因此,在這種情況下,我們使用super()函式來輕鬆訪問超類方法。

相關文章-PythonClass Pythonnew關鍵字 Python中的類方法 Python中類建構函式的可選引數 在Python中使用getitem Python中的多重回歸Python中的巢狀函式 x



請為這篇文章評分?