python中isinstance函數


1、描述

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

 

2、語法

isinstance(object,classinfo)

參數:

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)     # return True

type(A()) == A         # return True

isinstance(B(),A)    # return True

Type(B())  == A      # return False

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

如果要判斷兩個類型是否相同,則推薦使用isinstance()。


免責聲明!

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



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