python中isinstance 函式詳解

2021-10-05 21:51:38 字數 1198 閱讀 1077

isinstance() 函式來判斷乙個物件是否是乙個已知的型別,比如:

isinstance(2

,int

)

因為2是int整型,函式將會返回true.

instance()函式的語法形式為:

isinstance

(object

, classinfo)

兩個引數表示的意思為:

object – 例項物件,就相當於剛才例子中的2.

classinfo – 可以是直接或間接類名、基本型別或者由它們組成的元組。

返回值:如果物件的型別與引數二的型別(classinfo)相同則返回 true,否則返回 false。

這裡給出乙個例子:

>>

>a =

2>>

>

isinstance

(a,int

)true

>>

>

isinstance

(a,str

)false

>>

>

isinstance

(a,(

str,

int,

list))

# 是元組中的乙個返回 true

true

可以看出isinstance()函式和type()函式很類似。但是兩者又有區別,type() 不會認為子類是一種父類型別,不考慮繼承關係。isinstance() 會認為子類是一種父類型別,考慮繼承關係。

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

這裡給出兩個函式區別的示例:

classa:

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

python中type和isinstance的使用

a1 1,2 print type a1 class a 建立乙個空類 pass 代表空行,讓編譯器不報錯 a a 建立乙個物件 print type a class b a 建立乙個類b,繼承自類a pass 空行,沒有實際意義,僅僅讓編譯器不報錯 b b 建立乙個類b的物件 print type...

Python中type和isinstance的區別

在python中,我們經常通過type和isinstance來判斷某個物件的型別,下面我們通過乙個簡單的例子來分析2個方法的區別 class animal object def init self,name self.name name class dog animal def init self,...

python的type和isinstance的區別

type可以獲取乙個物件的型別,isinstance可以判斷乙個物件是否是某個型別。但是最大的區別是 isinstance會認為子類是一種父類型別 比如如下 isinstance 會認為子類是一種父類型別 coding utf 8 class basecls pass class testcls b...