newbie: class and __dict__ variable.

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Mon Sep 20 09:27:25 CEST 2010


Terry Reedy a écrit :
> 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,

It also bypasses object.__setattribute__ and - as a consequence - any 
binding descriptor by the same name as the attribute being set.





>> myCl = MyClass()
>> print myCl.maci
> 



More information about the Python-list mailing list