On Aug 25, 2:09 pm, Ken Starks <[EMAIL PROTECTED]> wrote:
> 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.
>
> ############################

This is just me, but I don't think that Python is the right language
for your program.  In Python it's extra easy to get around that
obstacle.  Python is more about freedom and discipline.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to