Python中type和isinstance的區別

2021-10-07 23:33:48 字數 1016 閱讀 9331

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

class

animal

(object):

def__init__

(self,name)

: self.name = name

class

dog(animal)

:def

__init__

(self,name)

: self.name = name

dog = dog(

"dog1"

)print

(type

(dog))#

print

(type

(dog)

is dog)

# true

print

(type

(dog)

is animal)

# false

print

(isinstance

(dog,dog)

)# true

print

(isinstance

(dog,animal)

)# true

print

(isinstance

(dog,

(int

,animal)))

# true

print

(isinstance

(dog,

(int

,str))

)# false

總結:

type接受乙個物件,並且返回該物件的型別,isinstance需要傳入2個引數,第乙個為物件,第二個可以是乙個物件的型別,或者以元組的形式傳入多個物件型別,如果該物件為多個型別中的某乙個則返回true,如果都不是則返回false。並且isinstance可以判斷子類是父類的類型別,type則不能判斷子類是父類的類型別。

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和object的關係

學習python的同學都知道這麼幾句話 那麼type和object是什麼關係呢?object是乙個新式類,我們可以通過object.class 和object.bases 來獲取object所屬的類核他的父類。object.class 這說明 object類是乙個type元類的例項。這與type是所...

python中的type 函式

type 是乙個內建函式,可以很方便地查詢物件資料型別 主要有兩種用法 乙個引數和三個引數 1 只使用乙個引數 print type 1 輸出 print typr str 輸出2 使用三個引數 classx object a 1x type x object,dict a 1 產生乙個新的型別 x...