python基於用setattr/hasattr操作對象屬性

本博文源於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的時候就會發現定義是多麼重要。俗話說:基礎不牢,地動山搖。希望各位謹記在心!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章