Python 中的多重繼承
文章推薦指數: 80 %
這通常是在繼承開始跨越路徑時出現歧義的情況下完成的,即當兩個父類也從超級基類派生時。
例如,. 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
延伸文章資訊
- 1Python class設計· parallel_processing
... python class內部沒有public, protected, private的區間,全部都是public,因此若是希望為private value時,應在變數前面加上兩個unde...
- 2Python 3.1 快速導覽- 類別多重繼承
多重繼承(mutliple inheritance) 的使用很簡單,寫父類別的小括弧中,利用逗點分開每個父類別即可。 以下示範繼承兩個父類別的寫法 class SubClass(SuperCla...
- 39. Class(類別) — Python 3.10.7 說明文件
Python 的class 提供了所有物件導向程式設計(Object Oriented Programming) 的標準 ... 空間的重要一點是,不同命名空間中的名稱之間絕對沒有關係;舉例來說...
- 4Python 中的多重繼承
這通常是在繼承開始跨越路徑時出現歧義的情況下完成的,即當兩個父類也從超級基類派生時。 例如,. Python. pythonCopy class Animals: def __init__ ...
- 5[Day 14] 從零開始學Python - 物件與類別:我們不一樣 - iT 邦幫忙
一個類別也可以繼承不只一個類別,例如假設我們有A, B兩個類別, 想用一個C類別同時繼承它們: class C(A, B): ... 這麼一來,C就會同時擁有A跟B的屬性和方法。