isinstance() 函式

华小电發表於2024-07-14

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

isinstance() 與 type() 區別:

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

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

語法

isinstance(object, classinfo)
  • object -- 例項物件。
  • classinfo -- 可以是直接或間接類名、基本型別或者由它們組成的元組。

示例

>>>a = 123
>>> isinstance (a,int) 
True 
>>> isinstance (a,str) 
False 
>>> isinstance (a,(str,int,list))    # 是元組中的一個返回 True 
True

type() 與 isinstance()區別:

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

相關文章