[Python-Dev] Re: PEP 318: Decorators last before colon

Neil Schemenauer nas-python at python.ca
Wed Mar 31 19:39:13 EST 2004


On Wed, Mar 31, 2004 at 07:16:06PM -0500, Phillip J. Eby wrote:
> It sounds like a lot of people's "use" translates to your "abuse";
> e.g.  Bob's use cases would certainly have to be considered abuse,
> since they wouldn't be part of some fixed set defined by Python.

Yup.  It seems to me that there are a number of different use cases
and they all want to try to use the same new syntax.

> [Binding _ to the last function definition] doesn't do what's
> needed, since you left out the rebinding of the function name.

That's possible without new syntax.  Some example code:

    import sys

    def myclassmethod(func):
        frame = sys._getframe(1)
        name = func.func_name
        if name in frame.f_locals:
            namespace = frame.f_locals
        elif name in frame.f_globals:
            namespace = frame.f_globals
        else:
            raise NameError, 'cannot find %r' % name
        namespace[name] = classmethod(func)

    class A:
        def something():
            pass
        myclassmethod(something)
        print something

It's not pretty but it might prevent people from developing RSI
while Guido works out what new syntax is best.

> Finally, it doesn't address the issue of wanting to call these
> things out *ahead* of the function's code, as part of the
> definition header, so that a person who is reading for an overview
> can notice it and take it in.

That's true.

  Neil



More information about the Python-Dev mailing list