[Python-Dev] Re: new syntax for wrapping (PEP 318)

Bob Ippolito bob at redivi.com
Fri Feb 27 07:07:07 EST 2004


On Feb 27, 2004, at 6:25 AM, Alan Green wrote:

> Barry Warsaw <barry <at> python.org> writes:
>
>> Just what /is/ the contract for a decorator function?  Maybe that it
>> takes a function/method object and must return a descriptor?  I do 
>> think
>> this needs some clarification in the PEP.
>
> 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
>
> The property decorator would reach inside the locals dictionary amd 
> pull out
> the special names 'get', 'set' and 'delete', and use them to construct 
> the
> property descriptor.

That can already be done with class syntax (and an appropriate 
metaclass), without touching anything's locals.

-bob




More information about the Python-Dev mailing list