介紹
isinstance()是Python 3內置的一個函數,用於檢查一個對象是否是一個特定類或類型的實例。比如我們經常會碰到的判斷變數是否為整數,是不是字元串等等。而且isinstance()函數具有靈活性,它接受一個類型或類型的元組並返回一個布爾值。
在Python中,使用isinstance() 函數可以幫助我們更好地理解變數的類型,以及變數是否是我們希望的類型。
作用
isinstance()函數有時會被認為是檢查變數類型的最佳方法。下面將分別從以下三個方面介紹isinstance()函數的用法。
1.檢查一個變數或對象的類型
在Python中,我們經常需要檢查一個變數或對象的類型。對於基本類型的數據,使用基本的if語句可以輕鬆地判斷。但是,對於更複雜的數據類型,我們將需要更高效的方法。在這種情況下,使用isinstance()函數是一種常用的解決方法。
num = 123 if isinstance(num, int): print("num is an integer") else: print("num is not an integer")
輸出結果為:
num is an integer
首先定義了一個變數num,它的值是整數123。然後使用isinstance()函數檢查變數num是否是一個整數。在這種情況下,isinstance()函數返回True,所以輸出結果為num is an integer。
2.檢查對象是否屬於給定的類
在Python中,一個對象可能是由多個類的實例組成。對於這種情況,我們可以使用isinstance()函數檢查對象是否屬於給定的類。
class Dog: def bark(self): print("woof woof") class Cat: def meow(self): print("meow meow") class Animal: pass def animal_sounds(animal): if isinstance(animal, Dog): animal.bark() elif isinstance(animal, Cat): animal.meow() else: print("unknown animal sound") dog = Dog() cat = Cat() animal = Animal() animal_sounds(dog) animal_sounds(cat) animal_sounds(animal)
輸出結果為:
woof woof meow meow unknown animal sound
在上面的代碼示例中,我們定義了三個類:Dog,Cat 和Animal。 然後我們實現了一個功能animal_sounds(),它接受一個參數,判斷參數是否是Dog或Cat的實例,如果是,則分別調用bark()和meow()方法列印對應動物的叫聲;如果不是,則輸出unknown animal sound的信息。
3.檢查一個變數是否屬於一個元組中的任何一個類
isinstance()函數可以接受一個由多個類型組成的元組作為第二個參數。當檢查變數時,如果變數類型與元組中的任何類型之一匹配,則isinstance()函數將返回True。
num = 123 if isinstance(num, (int, float)): print("num is a number") else: print("num is not a number")
輸出結果為:
num is a number
在上面的代碼示例中,我們檢查變數num是否為數字。isinstance(num, (int, float))的語法表示num是int類型或float類型。由於num變數是int類型,因此isinstance()函數返回True,輸出結果為num is a number。
總結
isinstance()函數是Python內置的非常有用的函數。它可以檢查對象或變數的類型,檢查對象是否屬於給定的類,並檢查變數是否屬於元組中的任何一個類型之一。這種用法可以幫助我們更好地理解我們的變數與類型之間的關係,從而提高我們的編程效率。使用isinstance()函數時應保證代碼的簡潔性和可讀性。
原創文章,作者:VVCU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/134076.html