python基礎 繼承

來源:互聯網
上載者:User

標籤:lang   多個   相同   之一   準則   tcl   選擇   -name   原理   

繼承

  繼承指的是類與類之間的關係,是一種什麼“是”什麼的關係,繼承的功能之一就是用來解決代碼重用問題

  繼承是一種建立新類的方式,在python中,建立的類可以繼承一個或多個父類,父類又可以成為基類或超類,建立的類稱為衍生類別或子類

  python中類的繼承分為:單繼承和多繼承

class ParentClass1: #定義父類    passclass ParentClass2: #定義父類    passclass SubClass1(ParentClass1): #單繼承,基類是ParentClass1,衍生類別是SubClass    passclass SubClass2(ParentClass1,ParentClass2): #python支援多繼承,用逗號分隔開多個繼承的類    pass
繼承與重用性

  在開發程式的過程中,如果我們定義了一個類A,然後又想建立立另外一個類B,但是類B的大部分內容與類A的相同時

  我們不可能從頭開始寫一個類B,這就用到了類的繼承的概念。

  通過繼承的方式建立類B,讓B繼承A,B會‘遺傳’A的所有屬性(資料屬性和函數屬性),實現代碼重用。

繼承的實現原理

  python到底是如何?繼承的,對於你定義的每一個類,python會計算出一個方法解析順序(MRO)列表,這個MRO列表就是一個簡單的所有基類的線性順序列表。

  為了實現繼承,python會在MRO列表上從左至右開始尋找基類,直到找到第一個匹配這個屬性的類為止。而這個MRO列表的構造是通過一個C3線性化演算法來實現的。我們不去深究這個演算法的數學原理,它實際上就是合并所有父類的MRO列表並遵循如下三條準則:

  1. 子類會先於父類被檢查
  2. 多個父類會根據它們在列表中的順序被檢查
  3. 如果對下一個類存在兩個合法的選擇,選擇第一個父類
在子類中調用父類的方法

  在子類派生出的新方法中,往往需要重用父類的方法,我們有兩種方式實現

  方式一:父類名.父類方法()

  方式二:super()

  兩種方式的區別是:方式一是跟繼承沒有關係的,而方式二的super()是依賴於繼承的,並且即使沒有直接繼承關係,super仍然會按照mro繼續往後尋找

 

 

 




python基礎 繼承

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.