[Python-Dev] Declaring setters with getters (original) (raw)
Fred Drake fdrake at acm.org
Thu Nov 1 02:38:27 CET 2007
- Previous message: [Python-Dev] Declaring setters with getters
- Next message: [Python-Dev] Declaring setters with getters
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Oct 31, 2007, at 4:28 PM, Guido van Rossum wrote:
Given how rarely supporting deletions matters enough to write extra code, we can just say that when using @propset your setter function needs to have a default value for the argument or otherwise support being called with one or two arguments.
It's definitely unusual, but the logic is typically very different;
conflating the method in Python doesn't really feel "right" to me.
I've been using Philipp von Weitershausen's "rwproperty" quite happily:
http://pypi.python.org/pypi/rwproperty/
It uses the names "getproperty", "setproperty", and "delproperty",
which feel reasonable when I use them (always referenced using the
module), like so:
class Thing(object):
@rwproperty.setproperty
def attribute(self, value):
# ...
If I had to choose built-in names, though, I'd prefer "property",
"propset", "propdel". Another possibility that seems reasonable
(perhaps a bit better) would be:
class Thing(object):
@property
def attribute(self):
return 42
@property.set
def attribute(self, value):
self._ignored = value
@property.delete
def attribute(self):
pass
-Fred
-- Fred Drake
- Previous message: [Python-Dev] Declaring setters with getters
- Next message: [Python-Dev] Declaring setters with getters
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]