On Apr 11, 11:19 am, Floris Bruynooghe <[EMAIL PROTECTED]> wrote: [...] > > Unfortunatly both this one and the one I posted before work when I try > > them out on the commandline but both fail when I try to use them in a > > module. And I just can't figure out why. > > This in more detail: Imaging mod.py: > > import sys > > _property = property > > class property(property): > """Python 2.6/3.0 style property""" > def setter(self, fset): > cls_ns = sys._getframe(1).f_locals > for k, v in cls_ns.iteritems(): > if v == self: > propname = k > break > cls_ns[propname] = property(self.fget, fset, > self.fdel, self.__doc__) > return fset > > class Foo(object): > @property > def x(self): > return self._x > > @x.setter > def x(self, v): ^^^^^ Don't call this 'x', it will override the property, change it to 'setx' and everything will work. The same probably goes for your own 'propset' decorator function.
> self._x = v + 1 > > Now enter the interpreter: > >> import mod > >>> f = mod.Foo() > >>> f.x = 4 > >>> f.x > > 4 > > I don't feel like giving up on this now, so close... -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list