getattr、setattr、hasattr

寫一個演示類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
相關文章
相關標籤/搜索