Python isinstance() 函數(shù)

2019-03-14 10:15 更新

Python isinstance() 函數(shù)

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

描述

Python isinstance() 函數(shù)來(lái)判斷一個(gè)對(duì)象是否是一個(gè)已知的類(lèi)型,類(lèi)似 type()。

isinstance() 與 type() 區(qū)別:
  • type() 不會(huì)認(rèn)為子類(lèi)是一種父類(lèi)類(lèi)型,不考慮繼承關(guān)系。
  • isinstance() 會(huì)認(rèn)為子類(lèi)是一種父類(lèi)類(lèi)型,考慮繼承關(guān)系。
如果要判斷兩個(gè)類(lèi)型是否相同推薦使用 isinstance()。

語(yǔ)法

以下是 isinstance() 方法的語(yǔ)法:

isinstance(object, classinfo)

參數(shù)

  • object:實(shí)例對(duì)象。
  • classinfo:可以是直接或間接類(lèi)名、基本類(lèi)型或者由它們組成的元組。

返回值

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

實(shí)例

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

>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元組中的一個(gè)返回 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

拓展

對(duì)于基本類(lèi)型來(lái)說(shuō),classinfo 可以是:

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

要注意的是,classinfo 的字符串是 str 而不是 string,字典也是簡(jiǎn)寫(xiě) dict。

實(shí)例:

arg=123
isinstance(arg, int)    #輸出True
isinstance(arg, str)    #輸出False
isinstance(arg, string) #報(bào)錯(cuò)

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)