issubclass ,isinstance,反射
阿新 • • 發佈:2018-08-24
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,反射