[Python-Dev] Re: Another approach to decorators.

David Abrahams dave at boost-consulting.com
Thu Aug 12 20:05:04 CEST 2004


David Eppstein <eppstein at ics.uci.edu> writes:

> In article <un011l2qz.fsf at boost-consulting.com>,
>  David Abrahams <dave at boost-consulting.com> wrote:
>
>> > class Foo:
>> >
>> >   decorate static:
>> >
>> >     def static1(blah...):
>> >         pass
>> >
>> >     decorate locksFile:
>> >
>> >       def static2andLocks(blah...):  # both decorators appy
>> >           pass
>> 
>> Wow, Martin Z's idea (using your keyword) really went "thunk" for me.
>> What decorate does would be very much like what "class" does in some
>> ways.
>
> class: (and other something: constructs) start a block that can contain 
> any code.  Does this decorate keyword allow e.g. assignments as well as 
> defs and other decorates?  Or loops?  

Why not?  class: starts a block that establishes a new dict as the
execution namespace and then passes the result off to the metaclass.
decorate might do the same.

> If so what should it mean?  

Whatever the user wants, I guess?

> Is it like that locals() gets replaced by a special
> dictionary-like-object that calls the decorator whenever any of its
> contents gets set?

I was thinking it calls the decorator afterwards, just like class
calls the metaclass afterwards.

-- 
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com



More information about the Python-Dev mailing list