Python函式每日一講11 - isinstance()

Daniel的思辨悟發表於2024-03-21

引言

在Python程式設計中,我們經常需要檢查一個物件是否屬於某個特定的類或型別。為了實現這個目的,Python提供了isinstance()函式。透過本文的介紹,你將瞭解isinstance()函式的基本語法、用法示例以及在實際工作中的應用場景,幫助你更好地理解和應用這一函式。

語句概覽

isinstance()函式用於檢查一個物件是否屬於指定的類或型別。其基本語法如下:

isinstance(object, classinfo)
  • object引數是要檢查的物件。
  • classinfo引數可以是類物件、型別物件或者由它們組成的元組。

如果引數 object 是引數 classinfo 的例項或者是其 (直接、間接或 虛擬) 子類則返回 True。 如果 object 不是給定型別的物件,函式將總是返回 False。 如果 classinfo 是型別物件元組(或由其他此類元組遞迴組成的元組),那麼如果 object 是其中任何一個型別的例項就返回 True。 如果 classinfo 既不是型別,也不是型別元組或型別元組的元組,則將引發 TypeError 異常。

函式例項

例1: 檢查物件是否屬於指定類

class Dog:
    pass

dog = Dog()
print(isinstance(dog, Dog))  # True

在這個例子中,我們定義了一個Dog類,並建立了一個dog物件。使用isinstance()函式檢查dog物件是否屬於Dog類,返回True。
例2: 檢查物件是否屬於多個類

class Animal:
    pass

class Dog(Animal):
    pass

dog = Dog()
print(isinstance(dog, (Dog, Animal)))  # True

這個例子中,我們定義了Animal類和Dog類,Dog類是Animal類的子類。使用isinstance()函式檢查dog物件是否同時屬於Dog類和Animal類,返回True。
例3: 檢查物件是否為特定型別

x = 10
print(isinstance(x, int))  # True
print(isinstance(x, str))  # False

這個例子中,我們定義了一個整數變數x,使用isinstance()函式分別檢查x是否為整數型別和字串型別,返回True和False。

應用場景

  • 用於檢查物件的型別,確定物件是否滿足特定的條件。
  • 在編寫通用函式時,根據不同的輸入型別執行不同的操作。
  • 用於型別檢查和資料驗證等場景。

注意事項

  • isinstance()函式只能用於檢查物件是否屬於某個類或型別,不能檢查物件是否包含某個方法或屬性。
  • 當classinfo引數為元組時,如果物件屬於元組中任何一個類或型別,則返回True。

結語
透過本文的介紹,相信你已經對isinstance()函式有了更深入的瞭解。合理使用isinstance()函式可以幫助你在程式設計中更加靈活地處理物件型別,提高程式碼的可讀性和健壯性。希望本文對你的學習和工作有所幫助!

關鍵詞
Python, isinstance(), 型別檢查, 物件型別, 程式設計技巧

相關文章