python中子類與父類的關(guān)系基礎(chǔ)知識點
在對于python中類的使用上,我們分出了子類和父類兩種。對于這二者之間的關(guān)系,我們可以簡單理解為繼承。不過python中加入了實例的討論,那么對于繼承后的子類來說,父類的實例是否被繼承又是我們所需要思考的問題。下面我們就子類和父類進(jìn)行簡單介紹,然后就二者之間的繼承關(guān)系重點分析。
1.概念
子類和父類主要描述的是類之間的繼承關(guān)系,即所屬關(guān)系。繼承的類可在被繼承的類的基礎(chǔ)上添加格外的參數(shù)和行為,新類稱為子類,擴(kuò)展類;被繼承的類稱為基類、父類或者超類。
2.繼承關(guān)系
子類與父類的關(guān)系是 “is” 的關(guān)系,如上 Cat 繼承于 Animal 類,我們可以說:
“A”是 Animal 類的實例,但,“A”不是 Cat 類的實例。
“C”是 Animal 類的實例,“C”也是 Cat 類的實例。
判斷對象之間的關(guān)系,我們可以通過 isinstance (變量,類型) 來進(jìn)行判斷:
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ū)傩栽谧宇愔胁⒉淮嬖?,那么就會自動的去其父類中進(jìn)行查找。
繼承父類后,就能調(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jupyter notebook出現(xiàn)In[*]的問題及解決
這篇文章主要介紹了jupyter notebook出現(xiàn)In[*]的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09python使用tkinter調(diào)整label背景顏色的測試
這篇文章主要介紹了python使用tkinter調(diào)整label背景顏色的測試方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09Scrapy基于selenium結(jié)合爬取淘寶的實例講解
今天小編就為大家分享一篇Scrapy基于selenium結(jié)合爬取淘寶的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python通過自定義isnumber函數(shù)判斷字符串是否為數(shù)字的方法
這篇文章主要介紹了python通過自定義isnumber函數(shù)判斷字符串是否為數(shù)字的方法,涉及Python操作字符串判斷的相關(guān)技巧,需要的朋友可以參考下2015-04-04