Bruno Desthuilliers wrote: > >>> class Prop(object): > ... @apply > ... def prop(): > ... def fget(self): return self._prop > ... def fset(self, val): self._prop = val > ... return property(**locals()) > ... def __init__(self, val): self.prop=val > ... > >>> class Hook(object): > ... def __getattr__(self, name): > ... if name == 'prop': > ... return self._prop > ... raise AttributeError("yadda") > ... def __setattr__(self, name, val): > ... if name == 'prop': > ... self.__dict__['_prop'] = val > ... else: > ... # XXX : INCORRECT IMPLEMENTATION, DONT DO THIS ! > ... self.__dict__[name] = val > ... # correct implementation: > ... # super(Hook, self).__setattr__(name, value) > ... def __init__(self, val): self.prop=val
Hi! Finally i ended up with all the suggestions you gave me. The speed is important to me besause i get/set my attribute a lot... The only doubts i have are with the @apply decorator, because 'apply' seems to be depreciated since python 2.3... And another thing: why writing for all attributes 'self.__dict__[name] = val' in __setattr__ is incorrect? Thanks a lot! Greetings, -- Marek -- http://mail.python.org/mailman/listinfo/python-list