[Python-Dev] Declaring setters with getters
Guido van Rossum
guido at python.org
Sat Nov 10 22:17:39 CET 2007
On Nov 10, 2007 11:09 AM, Steven Bethard <steven.bethard at gmail.com> wrote:
> On Nov 10, 2007 11:31 AM, Guido van Rossum <guido at python.org> wrote:
> > Unless I get negative feedback really soon I plan to submit this later
> > today. I've tweaked the patch slightly to be smarter about replacing
> > the setter and the deleter together if they are the same object.
>
> Definitely +1 on the basic patch.
>
> Could you explain briefly the advantage of the "hack" that merges the
> set and del methods? Looking at the patch, I get a little nervous
> about this::
>
> @foo.setter
> def foo(self, value=None):
> if value is None:
> del self._foo
> else:
> self._foo = abs(value)
>
> That means that ``c.foo = None`` is equivalent to ``del c.foo`` right?
Which is sometimes convenient. But thinking about this some more I
think that if I *wanted* to use the same method as setter and deleter,
I could just write
@foo.setter
@foo.deleter
def foo(self, value=None): ...
So I'm withdrawing the hacks, making the code and semantics much simpler.
See propset3.diff in http://bugs.python.org/issue1416 .
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list