[Python-Dev] Re: Another approach to decorators. (original) (raw)

Bob Ippolito bob at redivi.com
Thu Aug 12 23:25:24 CEST 2004


On Aug 12, 2004, at 4:53 PM, Guido van Rossum wrote:

I think this is too far-fetched to consider as an alternative to the humble @decorator.

Maybe, but if you're still serious about improving support for domain-specific embedded languages in Python you ought to give the ideas another look. If a reasonable syntax for decorators falls out of a more general and useful mechanism, so much the better. How does decorate , ...: improve support for domain-specific embedded languages?

I guess it depends on what is passed to the decorators. If enough information is passed to the decorators it might almost be like a macro. Practically speaking, I don't see how it would help very much considering that the block would be executed before the expression. If it wasn't executed before the decorators, then I don't see how it would be any better than

@<expr>
def throwawayname():
    <block>

I suppose that decorators in the decorate , ...: syntax would take a dict of the block's local namespace and return a dict of anything that should be set in the local namespace of the decorate statement.

But now that I think about it some more, it would probably be more useful to domain-specific languages if the decorators were allowed to modify the namespace before and after the block. For example, to import a whole bunch of stuff for a domain specific purpose (say, writing SQL code, doing AppleEvents, etc.) and then get rid of it afterwards?

Anyway, I think that the decorate , ...: syntax might be useful someday, but I don't think that it could usefully have the same semantics as the current decorator PEP.

-bob



More information about the Python-Dev mailing list