1. 程式人生 > >issubclass ,isinstance,反射

issubclass ,isinstance,反射

lse 報錯 函數實現 tex 有一個 table 方法 遞歸 ins

isinstance是Python中的一個內建函數 語法: isinstance(object, classinfo) 如果參數object是classinfo的實例,或者object是classinfo類的子類的一個實例, 返回True。如果object不是一個給定類型的的對象, 則返回結果總是False。 如果classinfo不表示一個類(類型對象), 那麽它要麽是一個類的元組, 或者遞歸地包含這樣的(由數據類型構成的)元組.其他的序列類型是不被允許的。 如果classinfo不是一種數據類型或者由數據類型構成的元組,將引發一個TypeError異常。 舉例: >>> isinstance(1, int) True >>> isinstance(1.0, float) True >>>isinstance(a,dict) 判斷對象a是否為字典,如果為真,會打印True,如為假,打印False。

反射------------------------------------
在Python中反射的表現形式是:
通過字符串的形式操作對象相關的屬性
在Python中通過四個函數實現反射:

函數名意義
hasattr(obj,name) 判斷object中有沒有一個name字符串對應的方法或屬性
getattr(obj,name, default) 檢查obj.__dict__中有沒有name這個鍵值,有則不做任何處理,沒有則報錯
setattr(obj,name,value) 等價於obj.name=value
delattr(obj,name) 等價於del obj.name

issubclass ,isinstance,反射