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物件
- Python中的類和物件(二):描述符Python物件
- Python中的類與物件Python物件
- 類和物件(中)物件
- cpp中的類和物件物件
- python的dir()和__dict__屬性的區別Python
- Delphi中的類和物件 (轉)物件
- python:類1——類和物件基礎Python物件
- python中類物件及類屬性的介紹Python物件
- python中物件導向_類_物件的概念與定義Python物件
- 理解Python中的類物件、例項物件、屬性、方法Python物件
- Python __dict__屬性:檢視物件內部所有屬性名和屬性值組成的字典Python物件
- 物件導向中類和物件的定義是什麼?物件
- java學習中對類和物件的理解Java物件
- 類和物件物件
- 物件和類物件
- runtime(零) Objc 中類和物件的本質OBJ物件
- java中的類與物件Java物件
- python實現在類中動態新增屬性和生成物件Python物件
- 『無為則無心』Python物件導向 — 46、類和物件Python物件
- Python中可變物件和不可變物件的區別?Python基礎Python物件
- java裡的物件和類Java物件
- python例項屬性的顯示方法-dir、__dict__Python
- Scala 類和物件物件
- Java 物件和類Java物件
- Java 類和物件Java物件
- Java物件和類Java物件
- scala類和物件物件
- 如何理解Python3中的子類和父類?Python
- Python - 物件導向程式設計 - 什麼是 Python 類、類物件、例項物件Python物件程式設計
- Python中類的建立和使用方法Python
- python中類的建立和例項化Python
- Python 中的類(中)Python
- JavaScript中的物件導向----類JavaScript物件
- Python 中的引用和類屬性的理解Python
- python物件導向思想(類與物件)Python物件