Python使用__dict__查看對象內部屬性的名稱和值


1、定義一個類

class MyObj:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def myFunc(self):
        pass


mo = MyObj('Boby', 24)
print(mo)
print(mo.__dict__)

#結果
<__main__.MyObj object at 0x000000815C364518>

{'name': 'Boby', 'age': 24}


從以上代碼來看;直接使用mo.__dict__即可獲取該實例的屬性值;


2、還可以設置屬性

還是上面的類;

mo = MyObj('Boby', 24)

# 修改屬性
mo.__dict__['name'] = 'jason'
mo.__dict__['age'] = 42
print(mo.__dict__)


#結果
{'name': 'jason', 'age': 42}


3、添加屬性

mo = MyObj('Boby', 24)

mo.__dict__['name'] = 'jason'
mo.__dict__['age'] = 42


#添加屬性
mo.__dict__['grade'] = 3
mo.__dict__['address'] = 'BeiJing'
print(mo.__dict__)


#結果
{'name': 'jason', 'age': 42, 'grade': 3, 'address': 'BeiJing'}


4、總結

我們知道,C、Java等面向對象的編程語言,在進行類的初始化時,對與類的限制是很嚴格的,這樣做的好處是安全,
我們試想一下,如果創建的一個類在任何情況下,會被任何外部或者內部方法調用,並且可以輕易改動它,這樣的做法是很危險的。


比如上面的mo實例,我們執行下面的代碼:

mo.__dict__.clear()

print(mo.__dict__)

我們創建的實例成了空白;


因此,盡量不要使用obj.__dict__這個對象來設置鍵值對或者要小心使用;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM