On 9/19/2010 1:37 PM, mafeu...@gmail.com wrote:

Hallo Group Members. From time to time I see in python code following
notation that (as I believe) extends namespace of MyClass.

No, it does not affect MyClass, just the instance dict.

class MyClass:
     def __init__(self):
         self.__dict__["maci"]=45

Have you seen exactly this usage?


myCl2 = MyClass2()
print myCl2.maci


I am guessing that there must be some difference between the one above
and the one below, because otherwise no one would probably use the one
above. Do YOu know that difference?

class MyClass2:
     def __init__(self):
         self.maci=45

If the class has a .__setattr__ method, the first bypasses that method, the second results in it being called. The direct __dict__ access is most useful within a .__setattr__ method to avoid infinite recursion.

myCl = MyClass()
print myCl.maci

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to