Python3 isinstance() 函數(shù) -判斷一個對象是否是一個已知的類型

2023-04-21 16:57 更新

Python 內(nèi)置函數(shù) Python 內(nèi)置函數(shù)


描述

isinstance()? 函數(shù)來判斷一個對象是否是一個已知的類型,類似 ?type()?。

?isinstance()?函數(shù)在使用時需要有一個已知類型的對象作為比較,比如要判斷一個對象是不是列表,你需要傳入一個列表對象

?isinstance() ?與? type()? 區(qū)別:?type() ?不會認為子類是一種父類類型,不考慮繼承關系。?isinstance() ?會認為子類是一種父類類型,考慮繼承關系。如果要判斷兩個類型是否相同推薦使用? isinstance()?。

語法

以下是 ?isinstance() ?方法的語法:

isinstance(object, classinfo)

參數(shù)

  • object:實例對象。
  • classinfo:可以是直接或間接類名、基本類型或者由它們組成的元組。

 在python3.10中,可以classinfo使用聯(lián)合類型(union類型)


返回值

如果對象的類型與參數(shù)二的類型(classinfo)相同則返回 True,否則返回 False。


實例

以下展示了使用 isinstance 函數(shù)的實例:

>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元組中的一個返回 True
True

type() 與 isinstance() 的區(qū)別:

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

拓展

對于基本類型來說,classinfo 可以是:

int,float,bool,complex,str(字符串),list,dict(字典),set,tuple

要注意的是,classinfo 的字符串是 str 而不是 string,字典也是簡寫 dict。

實例:

arg=123
isinstance(arg, int)    #輸出True
isinstance(arg, str)    #輸出False
isinstance(arg, string) #報錯

Python 內(nèi)置函數(shù) Python 內(nèi)置函數(shù)


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號