[Python-Dev] The decorator(s) module (original) (raw)
Thomas Wouters thomas at xs4all.net
Sat Feb 11 13:51:02 CET 2006
- Previous message: [Python-Dev] The decorator(s) module
- Next message: [Python-Dev] The decorator(s) module
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Feb 10, 2006 at 10:32:23PM +0100, Georg Brandl wrote:
Unfortunately, a @property decorator is impossible...
Depends. You can do, e.g.,
def propertydef(propertydesc): data = propertydesc() if not data: raise ValueError, "Invalid property descriptors" getter, setter, deller = (data + (None, None))[:3] return property(fget=getter, fset=setter, fdel=deller, doc=propertydesc.doc)
and use it like:
class X(object): def init(self): self._prop = None
@propertydef
def prop():
"Public, read-only access to self._prop"
def getter(self):
return self._prop
return (getter,)
@propertydef
def rwprop():
"Public read-write access to self._prop"
def getter(self):
return self._prop
def setter(self, val):
self._prop = val
def deller(self):
self._prop = None
return (getter, setter, deller)
@propertydef
def hiddenprop():
"Public access to a value stored in a closure"
prop = [None]
def getter(self):
return prop[0]
def setter(self, val):
prop[0] = val
def deller(self):
prop[0] = None
return (getter, setter, deller)
-- Thomas Wouters <thomas at xs4all.net>
Hi! I'm a .signature virus! copy me into your .signature file to help me spread!
- Previous message: [Python-Dev] The decorator(s) module
- Next message: [Python-Dev] The decorator(s) module
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]