少說話多寫程式碼之Python學習044——類06(多繼承)
阿新 • • 發佈:2018-11-20
關於繼承最麻煩的就是多繼承,而Python是支援多繼承的。也就是說一個子類可能有兩個以上的父類。
比如,如下程式碼,子類繼承了兩個類,父類的方法在子類中都可以呼叫。
class Programer: language='二進位制' def work(self): print('程式設計師用%s 寫程式碼' %(self.language)) def workDate(self): print('程式設計師上班時間:二十四小時') class Person: food='泡麵' def eat(self): print('吃 %s' %(self.food)) def workDate(self): print('普通人上班時間:八小時') class CsharpProgramer(Programer,Person): pass #記住前面學的了嗎,這句什麼也不做
CsharpProgramer繼承了Programer和Person類,呼叫如下,
p=CsharpProgramer()
p.language='C#'
p.food='夜宵'
p.work()
p.eat()
p.workDate()
輸出
程式設計師用C# 寫程式碼
吃 夜宵
程式設計師上班時間:二十四小時
如果被繼承的兩個父類有一個重名且引數都一樣的方法,還涉及一個順序的問題,也就是在實現繼承的時候哪個父類在前,前面的類的方法重寫後面類的相同方法。比如,
class Worker(Person,Programer): pass #記住前面學的了嗎,這句什麼也不做 p2=Worker() p2.workDate()
輸出
普通人上班時間:八小時
因為Person在前。workDate方法呼叫的是Person類的。
雖然Python中支援多繼承,在在實際使用中,一個類最好不要多繼承,遵循單繼承的原則會避免很多麻煩和無法預知的bug。
工程檔案下載:https://download.csdn.net/download/yysyangyangyangshan/10791129