本博文源於python基礎,旨在使用setattr與hasattr操控對象屬性
setattr/hasattr函數概述
這兩者本身就是一個函數,set顧名思義就是設置的意思,而has就是檢測是否存在的意思
setattr格式
setattr(object,name,value)
object:理解爲對象,也就是要設置的對象
name:理解爲名字,也就是要設置的屬性名(字符串格式喲!)
value:理解爲值,也就是要設置的屬性值
hasattr格式
hasattr(object,name)
object:被測試的對象(類或函數等)
name:屬性名(字符串格式)
例子:設置對象的屬性值,修改類屬性與實例屬性
實例效果
實例代碼
class DemoClass(object):
class_val = 3
def __init__(self,x=0,y=0):
self.x = x
self.y = y
self.info()
def info(self):
print('類屬性class_val:', DemoClass.class_val)
print('實例屬性x:', self.x)
print('實例屬性y:', self.y)
if __name__ == '__main__':
dc = DemoClass()
if hasattr(DemoClass,'class_val'):
setattr(DemoClass,'class_val',1000)
if hasattr(dc,'x'):
setattr(dc,'x','xxxxx')
if hasattr(dc,'y'):
setattr(dc,'y','yyyy')
dc.info()
setattr(dc,'z','zzzzz')
print('添加的屬性z',dc.z)
總結
大家學習python的時候,初期根據定義出發,定義是什麼我們玩什麼,到了後期自己diy的時候就會發現定義是多麼重要。俗話說:基礎不牢,地動山搖。希望各位謹記在心!