如何理解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物件
- C# 繼承 子類(派生類) 父類(基類)C#繼承
- Java子類和父類的初始化執行順序Java
- C#介面、抽象類、普通類和繼承(子類與父類)都有其特定的用途和場景C#抽象繼承
- 子類重寫父類的方法@Override的快捷鍵IDE
- 子類繼承父類的建構函式(方法)嗎?繼承函式
- 我如何理解Java中抽象類和介面Java抽象
- Animal如何修改python3中的類?Python
- C++父類指標指向子類物件的實現原理C++指標物件
- 父類和子類物件的獲取值的方式驗證,透過父類屬性的方式獲取不到值,需要使用get方法物件
- python3父類需要繼承object嗎?Python繼承Object
- day-25-類的繼承順序-父類對子類的約束-多型-佇列和棧繼承多型佇列
- 京東獲得jd商品分類API介面(父分類、根分類、子分類)API
- [短文速度-4] new子類是否會例項化父類
- java關於繼承父類,需要實現父類中的構造方法Java繼承構造方法
- 子類擁有父類物件所有的屬性和方法,但無法訪問物件
- python3中新類如何繼承?Python繼承
- 深入理解python中的類和物件Python物件
- java學習中對類和物件的理解Java物件
- Python 中的引用和類屬性的理解Python
- 獲取類屬性值,當前類,父類
- python 類的子類Python
- python類的子類Python
- 理解Python中的元類Python
- 理解Javascript中類的定義JavaScript
- 父類與子類之間靜態函式的呼叫以及函式引數的傳遞函式
- 父類沒有無參構造方法,子類怎麼辦學習筆記構造方法筆記
- locustfile中的User類和HttpUser類HTTP