如何理解Python3中的子類和父類?

coyan發表於2021-09-11

我們講過了一些子類繼承父類的案例,不過有的小夥伴跟小編反映分不清子類和父類,用的時候容易出錯。小編看了一下,確實容易混淆,還是要明確兩者的關係。為此小編整理了一些子類和父類關係對比的示例,希望小夥伴們能在執行程式碼的過程中,找到兩者明確的區別。


先來看一段程式碼:

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章