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