如何理解Python3中的子類和父類?
我們講過了一些子類繼承父類的案例,不過有的小夥伴跟小編反映分不清子類和父類,用的時候容易出錯。小編看了一下,確實容易混淆,還是要明確兩者的關係。為此小編整理了一些子類和父類關係對比的示例,希望小夥伴們能在執行程式碼的過程中,找到兩者明確的區別。
先來看一段程式碼:
class Animal(object): pass class Cat(Animal): pass A= Animal() C = Cat()
子類與父類的關係是 “is” 的關係,如上 Cat 繼承於 Animal 類,我們可以說:
“A”是 Animal 類的例項,但,“A”不是 Cat 類的例項。
“C”是 Animal 類的例項,“C”也是 Cat 類的例項。
判斷物件之間的關係,我們可以透過 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))
輸出結果:
"A" IS Animal? True "A" IS Cat? False "C" IS Animal? True "C" IS Cat? True
擴充:isinstance() 判斷變數型別
函式 isinstance() 不止可以用在我們自定義的類,也可以判斷一個變數的型別,如判斷資料型別是否為 int、str、list、dict 等。
print(isinstance('100', int)) print(isinstance(100, str)) print(isinstance('100', str))
輸出:
True False False True
相信看了以上的示例,小夥伴能夠明確子類與父類的關係了,小編也為大家開心。這樣下次在子類繼承父類的時候,小夥伴們也不會弄錯,分不清兩者的關係。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2236/viewspace-2832207/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java中多型的理解——父類引用指向子類物件Java多型物件
- 子父類中函式函式
- 鏈式-父類中返回子類物件物件
- 關於CSS中的定位使用子絕父相(子類絕對位置和父類相對位置)CSS
- 類的繼承_子類繼承父類繼承
- java中父類宣告子類例項化Java
- 父類和子類的建構函式問題函式
- 子父類中成員變數變數
- Java子類和父類的初始化執行順序Java
- Java 中建立子類物件會建立父類物件麼?Java物件
- 子類重寫父類的方法@Override的快捷鍵IDE
- C#介面、抽象類、普通類和繼承(子類與父類)都有其特定的用途和場景C#抽象繼承
- Animal如何修改python3中的類?Python
- python3父類需要繼承object嗎?Python繼承Object
- 父類和子類物件的獲取值的方式驗證,透過父類屬性的方式獲取不到值,需要使用get方法物件
- day-25-類的繼承順序-父類對子類的約束-多型-佇列和棧繼承多型佇列
- [短文速度-4] new子類是否會例項化父類
- java關於繼承父類,需要實現父類中的構造方法Java繼承構造方法
- 子類擁有父類物件所有的屬性和方法,但無法訪問物件
- 京東獲得jd商品分類API介面(父分類、根分類、子分類)API
- python3中新類如何繼承?Python繼承
- 深入理解python中的類和物件Python物件
- python類的子類Python
- python 類的子類Python
- java透過反射統計實體類和父類中為空的欄位數量Java反射
- 理解Python中的元類Python
- 獲取類屬性值,當前類,父類
- 如何使用python super函式呼叫父類?Python函式
- 父類沒有無參構造方法,子類怎麼辦學習筆記構造方法筆記
- 揭秘Java反射:如何輕鬆獲取類的屬性及父類屬性Java反射
- locustfile中的User類和HttpUser類HTTP
- 實現不可變類如何禁止子類化?
- Android中TextView及其子類AndroidTextView
- Java中父類方法重寫有哪些需要注意的?Java
- 全網最適合入門的物件導向程式設計教程:11 類和物件的Python實現-子類呼叫父類方法-模擬串列埠感測器和主機物件程式設計Python串列埠
- java介面和抽象類的簡單理解Java抽象
- Java超類與子類Java
- 19-父類的建構函式函式