python中類和物件的__dict__
類和物件都有__dict__屬性,用於儲存類和物件的所有屬性。但是二者的__dict__是不一樣的。
最大的不同是:類的__dict__不允許手動直接修改,而物件的__dict__允許手動直接修改.
比如:
class Myclass():
def __init__(self):
self.x = 1
myobject = Myclass()
myobject.y = 2 # okay
myobject.__dict__['y']=3 # okay
Myclass.z = 2 # okay
Myclass.__dict__['z']=3 #TypeError: 'mappingproxy' object does not support item assignment
為了讓類的__dict__
沒法被手動改,python把類的__dict__
設定為 mappingproxy
(python3) 或者dictproxy
(python2)。 mappingproxy
和dictproxy
只是名字不同,沒有區別。
Reference:
- https://stackoverflow.com/questions/39687713/what-the-difference-between-dict-proxy-in-python2-and-mappingproxy-in-python3
- https://stackoverflow.com/questions/25440694/whats-the-purpose-of-dictproxy
相關文章
- Python中的類和物件是什麼Python物件
- 深入理解python中的類和物件Python物件
- Python中的類與物件Python物件
- 03 #### `__dict__` , 用於獲取物件中的成員物件
- python的dir()和__dict__屬性的區別Python
- cpp中的類和物件物件
- 類和物件(中)物件
- python中類物件及類屬性的介紹Python物件
- python中物件導向_類_物件的概念與定義Python物件
- 理解Python中的類物件、例項物件、屬性、方法Python物件
- Python __dict__屬性:檢視物件內部所有屬性名和屬性值組成的字典Python物件
- 10 Python物件導向程式設計:類和物件以及和Java的對比Python物件程式設計Java
- 物件導向中類和物件的定義是什麼?物件
- 關於Java中的類和物件筆記Java物件筆記
- Python中可變物件和不可變物件的區別?Python基礎Python物件
- 類和物件物件
- 『無為則無心』Python物件導向 — 46、類和物件Python物件
- Python - 物件導向程式設計 - 什麼是 Python 類、類物件、例項物件Python物件程式設計
- java裡的物件和類Java物件
- 全網最適合入門的物件導向程式設計教程:02 類和物件的Python實現-使用Python建立類物件程式設計Python
- java中的類與物件Java物件
- python物件導向思想(類與物件)Python物件
- 類和物件案例物件
- 【Kotlin】類和物件Kotlin物件
- Java 類和物件Java物件
- Java 物件和類Java物件
- Scala 類和物件物件
- Java物件和類Java物件
- python例項屬性的顯示方法-dir、__dict__Python
- Python中類的建立和使用方法Python
- python中類的建立和例項化Python
- 如何理解Python3中的子類和父類?Python
- Python基礎-類與物件Python物件
- Python中的物件引用、可變性和垃圾回收Python物件
- 一文講全了Python 類和物件內容Python物件
- 物件導向的基本理論1:類和物件物件
- C++ 類和物件C++物件
- 6.類和物件物件