天天看點

Super()|學習筆記

開發者學堂課程【Python 語言基礎 3:函數、面向對象、異常處理:Super()】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/601/detail/8752

Super()

目錄:

一、父類中所有方法會被子類繼承

二、調用父類的—in it—來初始化父類中定義的屬性

一、父類中的所有方法都會被子類繼承,包括特殊方法,也可以重寫特殊方法

Animal 和 Dog 來示範,這兩個類,改完擴充名,是需要重新打開一下的,寫完了還是兩個類,一個是 Animal 一個是 Dog。

那寫這兩個類,還是說了繼承的話,屬性和方法都會被繼承,這個類裡是沒有屬性的,Animal 并沒有屬性,是以屬性談不上繼承,Animal 來定義屬性,in it 來一個self ,再來一個 name,最後直接來一個這個 self,加下劃線 name 等于 name,也就是添加了一個 name屬性,name 屬性可以給它設定一個 def 的方法,這兒來一個 name,直接理論下劃線 name。

再用 def 的方法,直接來 name 一個 setter 直接定義,name 裡邊兒來一個 self 的方法,還要傳值來一個 name,這裡要進行指派,Self 下劃線 name 等于一個name,剛才 Animal 是沒有意義的,也就是沒有屬性的,現在 Animal 裡邊加了屬性。

再去建立,這個 Dog 對象還能不能直接去建立?直接 d 等于一個 Dog,到這兒儲存了再執行,結果是報錯了,因為少了參數。

它是特殊方法,也叫魔術方法,這個方法也會被他所繼承,是以寫到 animal 裡,但是由于繼承了 animal。它就相當于寫小道理,這裡邊兒傳了 name,而建立的時候是沒有傳,沒有傳就報錯了,在這需要傳一個名字,儲存再執行,這時候就沒問題了,然後在來列印一下,name 或取樣的名字,執行這時候就擷取到了,也可以name 等于小黑,儲存,也可以設定了。

如果說父類中有十個屬性,不寫就儲存再執行會保錯,因為參數給多了,是沒有name,是以還得寫上,希望可以直接調用父類,來初始化父類中定義的屬性,意思是,父類中的屬性是有我們這個父類去調用的。