寫一個演示類spa
class test(): title="驗證getattr、setattr、hasattr方法" def run(self): return "run方法的輸出" t=test()
getattr獲取類裏面屬性、方法:getattr(object, name[,default])code
print('獲取對象屬性的驗證:',getattr(t,'title','須要的屬性不存在(默認值)')) ''' 1.存在時:輸出屬性對應的value值 2.不存時:輸出默認值(若是沒有設置默認值會報錯) ''' print('獲取對象屬性:',getattr(t,'run')) #輸出的是內存地址 ''' 獲取對象屬性: <bound method test.run of <__main__.test object at 0x03BF64F0>> ''' print('獲取對象屬性:',getattr(t,'run')()) #輸出的是方法體的輸出結果 ''' 獲取對象屬性: run方法的輸出 '''
setattr添加屬性和修改屬性:setattr(object, name,values)對象
setattr(t,'describle','setattr添加屬性並賦值') print(t.describle) #setattr添加屬性並賦值 setattr(t,'title','setattr修改原有屬性') print(getattr(t,'title')) #驗證表示已經存在,返回結果爲:setattr修改原有屬性
hasattr添加屬性和修改屬性:判斷一個對象是否有屬性和方法blog
#hasattr(object,title),判斷一個對象是否有name屬性或者name方法,返回值爲bool值,須要注意的是name須要括起來 print(hasattr(t,'describle')) #驗證表示已經存在,結果是bool值,結果爲True