1. 程式人生 > >面向對象(五)——面向對象進階

面向對象(五)——面向對象進階

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))      #
True
isinstance與issubclass

二、反射

1、什麽是反射

通過字符串的形式操作對象相關的屬性。python中的一切事物都是對象(都可以使用反射)

2、四個反射函數

name必須用字符串表示

hasattr(object,name)   # 判斷object中有沒有一個name字符串對應的方法或屬性

setattr(object,name, value)         # 設置object對象的name屬性的值問value

getattr(object,name,None)         # 獲取object對象的name屬性的值,若沒有那麽屬性,則返回None
delattr(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, name
)) # tom 13 print(getattr(obj, name1, None)) #None 14 15 delattr(obj,name) 16 print(obj.__dict__) # {‘age‘: 19}
View Code

三、內置方法

http://www.cnblogs.com/linhaifeng/articles/6204014.html#_label3

面向對象(五)——面向對象進階