在python中,isinstance的意思是「類型判斷」。 isinstance()是一個內建函數,用來判斷物件是否為已知的類型,語法“isinstance(object, type)”,如果是則傳回True,否則傳回False;而如果type參數是元組,而物件是元組中的類型之一,那麼此函數也會傳回True。
本教學操作環境:windows7系統、python3版,DELL G3電腦
在python中,isinstance的意思是“類型判斷” 。
python isinstance() 函數
#isinstance() 函數來判斷一個物件是否為已知的類型,類似 type()。
isinstance() 與 type() 區別:
type() 不會認為子類別是父類別類型,不考慮繼承關係。
isinstance() 會認為子類別是父類別類型,考慮繼承關係。
如果要判斷兩個型別是否相同建議使用 isinstance()。
如果指定的物件擁有指定的類型,則 isinstance() 函數傳回 True,否則傳回 False。
如果 type 參數是元組,則如果物件是元組中的類型之一,那麼此函數將傳回 True。
語法:
isinstance(object, type)
參數 | 描述 |
---|---|
object | 必要。對象。 |
type | 類型或類,或類型和/或類別的元組。 |
範例1:檢查"Hello" 是否是type 參數中描述的類型之一
x = isinstance("Hello", (str, float, int, str, list, dict, tuple)) print(x)
範例2 :檢查y 是否是myObj 的實例
class myObj: name = "Bill" y = myObj() x = isinstance(y, myObj) print(x)
#擴展知識:type和isinstance的區別
python中type可以獲得一個物件的資料類型,isinstance可以判斷一個物件的資料類型,他們的差異有兩點
#1. isinstance更加靈活
type只是傳回一個物件的資料類型,而isinstance可以判斷這個物件的資料類型是否為某幾個資料類型中的一個。
假設我們要判斷一個物件的資料類型是否為int或float,兩個函數的寫法範例如下
a = 4 # 使用type if type(a) == int or type(a) == float: print('yes') # 使用isinstance if isinstance(a, (int, float)): print('yes')
顯然,在這種場景下,isinstance更有優勢
2. 判斷存在繼承關係的情況
class A: pass class B(A): pass a = A() b = B() print(type(b) == A) # False print(isinstance(b, A)) # True
B是A的子類,type(b)回傳的是類B, 不等於A, 但B是A的子類,因此,我們可以認為b也是A的對象,面對這種存在繼承關係的情況,應當使用isinstance
推薦學習:Python視頻教程
以上是isinstance在python是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!