面向對象(五)——面向對象進階
阿新 • • 發佈:2018-08-24
isp ide -a lin t對象 lose att http lan
一、isinstance與issubclass方法
1、isinstance是用來判斷對象是否是某個類
isinstance(obj,class)
2、issubclass是用來判斷一個類是否為另一個類的子類
issubclass(Bar,Foo)
1 class Foo: 2 pass 3 4 5 class Bar(Foo): 6 pass 7 8 9 obj = Foo() 10 print(isinstance(obj, Foo)) # True 11 12 print(issubclass(Bar, Foo)) #isinstance與issubclassTrue
二、反射
1、什麽是反射
通過字符串的形式操作對象相關的屬性。python中的一切事物都是對象(都可以使用反射)
2、四個反射函數
name必須用字符串表示
hasattr(object,name) # 判斷object中有沒有一個name字符串對應的方法或屬性 setattr(object,name, value) # 設置object對象的name屬性的值問value getattr(object,name,None) # 獲取object對象的name屬性的值,若沒有那麽屬性,則返回Nonedelattr(object,name) # 刪除object對象的name屬性
1 class Foo: 2 pass 3 4 5 obj = Foo() 6 setattr(obj, ‘name‘, ‘tom‘) 7 setattr(obj, ‘age‘, 19) 8 print(obj.__dict__) # {‘name‘: ‘tom‘, ‘age‘: 19} 9 10 print(hasattr(obj, ‘name‘)) # True 11 12 print(getattr(obj, ‘nameView Code‘)) # tom 13 print(getattr(obj, ‘name1‘, None)) #None 14 15 delattr(obj,‘name‘) 16 print(obj.__dict__) # {‘age‘: 19}
三、內置方法
http://www.cnblogs.com/linhaifeng/articles/6204014.html#_label3
面向對象(五)——面向對象進階