Georg Brandl wrote: > Hi, > > can someone please tell me that this is correct and why: > > >>> class C(object): > ... pass > ... > >>> c = C() > >>> c.a = 1 > >>> c.__dict__ > {'a': 1} > >>> c.__dict__ = {} > >>> c.a > Traceback (most recent call last): > File "<stdin>", line 1, in ? > AttributeError: 'C' object has no attribute 'a' > >>> > >>> class D(object): > ... __dict__ = {} > ... > >>> d = D() > >>> d.a = 1 > >>> d.__dict__ > {} > >>> d.__dict__ = {} > >>> d.a > 1 > > Thanks, > Georg
Here is another example that might help: >>> class E(object): ... __dict__ = {'a': 1} ... >>> e = E() >>> e.__dict__ {'a': 1} >>> E.__dict__ <dictproxy object at 0x00A81930> >>> E.__dict__['a'] Traceback (most recent call last): File "<stdin>", line 1, in ? KeyError: 'a' >>> E.__dict__['__dict__'] {'a': 1} Ziga -- http://mail.python.org/mailman/listinfo/python-list