首頁  >  文章  >  後端開發  >  isinstance在python是什麼意思

isinstance在python是什麼意思

青灯夜游
青灯夜游原創
2023-01-11 14:03:249317瀏覽

在python中,isinstance的意思是「類型判斷」。 isinstance()是一個內建函數,用來判斷物件是否為已知的類型,語法“isinstance(object, type)”,如果是則傳回True,否則傳回False;而如果type參數是元組,而物件是元組中的類型之一,那麼此函數也會傳回True。

isinstance在python是什麼意思

本教學操作環境: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)

isinstance在python是什麼意思

範例2 :檢查y 是否是myObj 的實例

class myObj:
  name = "Bill"

y = myObj()

x = isinstance(y, myObj)

print(x)

isinstance在python是什麼意思

#擴展知識: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn