python3 isinstance 型別判斷函式

2021-09-29 09:14:47 字數 877 閱讀 4696

isinstance() 函式來判斷乙個物件是否是乙個已知的型別,類似 type()。

isinstance() 與 type() 區別:

type() 不會認為子類是一種父類型別,不考慮繼承關係。

isinstance() 會認為子類是一種父類型別,考慮繼承關係。

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

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

isinstance(object, classinfo)

object -- 例項物件。

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

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

以下展示了使用 isinstance 函式的例項:

>>>a = 2

>>> isinstance (a,int)

true

>>> isinstance (a,str)

false

>>> isinstance (a,(str,int,list))    # 是元組中的乙個返回 true

true

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

python的type和isinstance的區別

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

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