newbie: class and __dict__ variable.
Terry Reedy
tjreedy at udel.edu
Sun Sep 19 20:38:49 EDT 2010
On 9/19/2010 1:37 PM, mafeusek at 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
More information about the Python-list
mailing list