python isinstance()方法的使用


1. 描述
Python中的 isinstance() 函數,是Python中的一個內置函數,用來判斷一個函數是否是一個已知的類型,類似 type()。

2. 語法
isinstance(object,classinfo)
1
參數:

object : 實例對象。
classinfo : 可以是直接或者間接類名、基本類型或者由它們組成的元組。
返回值:如果對象的類型與參數二的類型(classinfo)相同則返回 True,否則返回 False。

3. 實例
以下是使用isinstance()函數的實例:

a = 2
isinstance(a,int) # 結果返回 True

isinstance(a,str) # 結果返回 False

isinstance(a,(str,int,list)) # 是元組中的一個,結果返回 True

4. isinstance()與type()的區別
例如在繼承上的區別:

isinstance() 會認為子類是一種父類類型,考慮繼承關系。
type() 不會認為子類是一種父類類型,不考慮繼承關系。
為了清楚的說明這種區別,我們做如下實驗:

class A:
pass

class B(A):
pass

isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False

我們發現,創建一個A對象,再創建一個繼承A對象的B對象,使用 isinstance() 和 type() 來比較 A() 和 A 時,由於它們的類型都是一樣的,所以都返回了 True。而B對象繼承於A對象,在使用isinstance()函數來比較 B() 和 A 時,由於考慮了繼承關系,所以返回了 True,使用 type() 函數來比較 B() 和 A 時,不會考慮 B() 繼承自哪里,所以返回了 False。

如果要判斷兩個類型是否相同,則推薦使用isinstance()。
---------------------
作者:飛鳥逐岸
來源:CSDN
原文:https://blog.csdn.net/HS_blog/article/details/81396664
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM