python中子類與父類的關(guān)系基礎(chǔ)知識點
在對于python中類的使用上,我們分出了子類和父類兩種。對于這二者之間的關(guān)系,我們可以簡單理解為繼承。不過python中加入了實例的討論,那么對于繼承后的子類來說,父類的實例是否被繼承又是我們所需要思考的問題。下面我們就子類和父類進行簡單介紹,然后就二者之間的繼承關(guān)系重點分析。
1.概念子類和父類主要描述的是類之間的繼承關(guān)系,即所屬關(guān)系。繼承的類可在被繼承的類的基礎(chǔ)上添加格外的參數(shù)和行為,新類稱為子類,擴展類;被繼承的類稱為基類、父類或者超類。
2.繼承關(guān)系子類與父類的關(guān)系是 “is” 的關(guān)系,如上 Cat 繼承于 Animal 類,我們可以說:
“A”是 Animal 類的實例,但,“A”不是 Cat 類的實例。
“C”是 Animal 類的實例,“C”也是 Cat 類的實例。
判斷對象之間的關(guān)系,我們可以通過 isinstance (變量,類型) 來進行判斷:
print(’'A' IS Animal?’, isinstance(A, Animal))print(’'A' IS Cat?’, isinstance(A, Cat))print(’'C' IS Animal?’, isinstance(C, Animal))print(’'C' IS Cat?’, isinstance(C, Cat))
Python實現(xiàn)子類調(diào)用父類的方法
python和其他面向?qū)ο笳Z言類似,每個類可以擁有一個或者多個父類,它們從父類那里繼承了屬性和方法。如果一個方法在子類的實例中被調(diào)用,或者一個屬性在子類的實例中被訪問,但是該方法或?qū)傩栽谧宇愔胁⒉淮嬖冢敲淳蜁詣拥娜テ涓割愔羞M行查找。
繼承父類后,就能調(diào)用父類方法和訪問父類屬性,而要完成整個集成過程,子類是需要調(diào)用的構(gòu)造函數(shù)的。
子類不顯式調(diào)用父類的構(gòu)造方法,而父類構(gòu)造函數(shù)初始化了一些屬性,就會出現(xiàn)問題如果子類和父類都有構(gòu)造函數(shù),子類其實是重寫了父類的構(gòu)造函數(shù),如果不顯式調(diào)用父類構(gòu)造函數(shù),父類的構(gòu)造函數(shù)就不會被執(zhí)行,導(dǎo)致子類實例訪問父類初始化方法中初始的變量就會出現(xiàn)問題。
到此這篇關(guān)于python中子類與父類的關(guān)系基礎(chǔ)知識點的文章就介紹到這了,更多相關(guān)python中子類與父類的關(guān)系內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Intellij IDEA 2019 最新亂碼問題及解決必殺技(必看篇)2. JS繪圖Flot如何實現(xiàn)動態(tài)可刷新曲線圖3. 關(guān)于HTML5的img標(biāo)簽4. CSS3實現(xiàn)動態(tài)翻牌效果 仿百度貼吧3D翻牌一次動畫特效5. 未來的J2EE主流應(yīng)用框架:對比Spring和EJB36. Android Manifest中meta-data擴展元素數(shù)據(jù)的配置與獲取方式7. Android自定義View實現(xiàn)掃描效果8. JS+css3實現(xiàn)幻燈片輪播圖9. css3溢出隱藏的方法10. ASP.NET MVC獲取多級類別組合下的產(chǎn)品
