Private attribute

Ken Starks straton at lampsacos.demon.co.uk
Mon Aug 25 15:09:36 EDT 2008


Ken Starks wrote:
> I have a class with an attribute called 'gridsize' and I want
> a derived class to force and keep it at 0.8 (representing 8mm).
> 
> Is this a correct, or the most pythonic approach?
> 
> ####################
> 
>     def __getattr__(self,attrname):
>         if attrname == 'gridsize':
>             return 0.8
> 
>     def __setattr__(self,attrname,value):
>         if attrname == 'gridsize':
>             pass
>         else:
>             self.__dict__[attrname]=value
> 
> #####################
> 
> 
> Cheers,
> Ken.

Perhaps I should mention the alternative I had in mind:

###################

class xyz:
   def __init__(self):
     self.__dict__['a'] = 123
     self.b=456


   def __setattr__(self,attrname,value):
         if attrname == 'a':
             pass
         else:
             self.__dict__[attrname]=value

   # __getattr__() not redefined.


############################



More information about the Python-list mailing list