[Python-Dev] Re: metaclass and author are already decorators (original) (raw)

Bob Ippolito bob at redivi.com
Sun Aug 22 00:28:37 CEST 2004


On Aug 21, 2004, at 6:24 PM, Paul Morrow wrote:

Bob Ippolito wrote:

On Aug 21, 2004, at 5:34 PM, Paul Morrow wrote: Phillip J. Eby wrote:

At 05:15 PM 8/21/04 -0400, Paul Morrow wrote:

Christophe Cavalaria wrote:

can it be ? There's also the fact that it can't handle named parameters like a regular function call. You can't write that : def foo(): decoration = (1,1,param=True)

As far as I know, we can't do that with the current decorator proposals either. @decoration(1,1,param=True) def foo(whatever): pass Ok, then whatever changes you've made to the Python system to support that would allow the same syntax to be used in what I'm suggesting. def foo(whatever): decoration = (1,1,param=True) def decoration(decoratedFunc, a, b, param=False): decorator = True version = '0.1' # body of 'decoration' decorator function goes here... Congratulations, this by far the worst suggestion yet! I'm -Inf on this :) Thanks. @decoration(1,1,param=True) makes no changes whatsoever to the Python system. Everything after the @ is really just an expression. The @ just implies that the result of the next class or def gets put through the result of the @expression before it is thrown into the namespace. It seems that writing a decorator is going to be a bizarre experience. In the example, I would need to write a function named 'decoration' that returns a function that will recieve a function (foo) to be decorated and then return a function. Does that sound about right?

Yes that is correct.

What would functions like 'decoration' typically look like? Could you show a short code snippet?

http://python.org/peps/pep-0318.html

-bob



More information about the Python-Dev mailing list