語法:isinstance(object, classinfo)函數
若是參數object是classinfo的實例,或者object是classinfo類的子類的一個實例, 返回True。若是object不是一個給定類型的的對象, 則返回結果老是False。
若是classinfo不表示一個類(類型對象), 那麼它要麼是一個類的元組, 或者遞歸地包含這樣的(由數據類型構成的)元組.其餘的序列類型是不被容許的。
若是classinfo不是一種數據類型或者由數據類型構成的元組,將引起一個TypeError異常。code
舉例:
isinstance(1, int)
True
isinstance(1.0, float)
True對象
isinstance(a,dict) 判斷對象a是否爲字典,若是爲真,會打印True,如爲假,打印False。
type函數與isinstance的共同之處都是驗證數據類型。
class A:遞歸
pass
class B(A):class
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
區別就是:
type()不會認爲子類是一種父類類型。
isinstance()會認爲子類是一種父類類型。object