Python 中的 isinstance() 函式

Python 中的 isinstance() 函式可以用來檢查一個物件是否為某個類別的實例,或是否為一個超類別的實例。它的語法如下:

isinstance(object, classinfo)

其中,object 是要檢查的物件,classinfo 則是要檢查的類別或超類別。如果 object 是 classinfo 的實例,或是 classinfo 的超類別的實例,則 isinstance() 函式會傳回 True,否則傳回 False。

舉個例子來說,假設我們有一個類別叫做 Animal,它有一個子類別叫做 Dog,那麼我們可以用 isinstance() 函式來檢查一個物件是否為 Animal 或 Dog 的實例:

class Animal:
    pass

class Dog(Animal):
    pass

dog = Dog()

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

可以看到,dog 是 Animal 的實例,也是 Dog 的實例,所以 isinstance() 函式傳回 True。

另外,isinstance() 函式也可以接受多個類別作為參數,例如:

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

這個例子中,isinstance() 函式會檢查 dog 是否為 Animal 或 Dog 的實例,由於 dog 是 Dog 的實例,所以 isinstance() 函式會傳回 True。

總結來說,Python 中的 isinstance() 函式可以用來檢查一個物件是否為某個類別的實例,或是否為一個超類別的實例,它可以接受多個類別作為參數,只要物件是其中任何一個類別的實例,isinstance() 函式就會傳回 True。

Categorized in:

Tagged in: