[Python-Dev] Re: new syntax for wrapping (PEP 318)
Alan Green
alan.green at cardboard.nu
Fri Feb 27 16:00:35 EST 2004
Phillip J. Eby <pje <at> telecommunity.com> writes:
> At 11:25 AM 2/27/04 +0000, Alan Green wrote:
> >It would be really spiffy if the decorator were able to run the decorated
> >function and then have access to the function's locals dictionary. It would
> >then be possible to define a property like so:
> >
> >class Foo(object):
> > def bar(self) [property]:
> > """ bar property docstring """
> > def get(self):
> > return self.__bar
> > def set(self, bar):
> > self.__bar = bar
>
> -1. There were better alternatives proposed in the previous discussion on
> PEP 218 and properties, like:
>
> def bar(self) [property_get]:
> # ...
>
> def bar(self,value) [property_set]:
> # ...
>
> def bar(self) [property_del]:
> # ...
defs-inside-defs is a bit wierd, but has some advantages over individual
methods:
* Tells the reader that the get/set/del belong together
* Gives a name to the property once, rather than one name three times
* Makes a sensible place for the property's docstring
Perhaps it might make more sense as:
class Foo(object):
def [property] bar:
def get(self):
...etc...
In which case, it truly is getting beyond the scope of PEP318.
--
Alan
--
More information about the Python-Dev
mailing list