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...