[Python-Dev] Declaring setters with getters

Duncan Booth duncan.booth at suttoncourtenay.org.uk
Thu Nov 1 12:28:09 CET 2007


"Steven Bethard" <steven.bethard at gmail.com> wrote in news:d11dcfba0710311943u3f6fe4b1x12f1ee659ea51823 at mail.gmail.com:

> On 10/31/07, Fred Drake <fdrake at acm.org> wrote:
>> 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
> 
> +1 on this spelling if possible.  Though based on Guido's original
> recipe it might have to be written as::
> 
>       @property.set(attribute)
>       def attribute(self, value):
>           self._ignored = value
> 
It *can* be written as Fred suggested: see 
http://groups.google.co.uk/group/comp.lang.python/browse_thread/thread/b442d08c9a019a8/8a381be5edc26340

However that depends on hacking the stack frames, so the 
implementation probably isn't appropriate here.


More information about the Python-Dev mailing list