Le Mercredi 24 Mai 2006 22:37, Scott David Daniels a écrit : > class Base(object): > def __init__(self, attr): > self._attr = attr > def getattr(self): > return self._attr > def attr(self): > return self.getattr() > attr = property(fget=attr)
but this has one drawback IMO, if you also want a virtual setter, you won't be able to override both of them. This convention would be better to avoid lambdas : class Base(object): def __init__(self, attr): self._attr = attr def getattr(self): return self._attr def __gattr(self): # double _ shows that this method is not virtual return self.getattr() def setattr(self,v): self._attr = v def __sattr(self,v): return self.setattr(v) attr = property(fget=__gattr, fset=__sattr) But, this is too verbose for me, I would opt for the lambda syntax :). _____________ Maric Michaud _____________ Aristote - www.aristote.info 3 place des tapis 69004 Lyon Tel: +33 426 880 097 -- http://mail.python.org/mailman/listinfo/python-list