[Python-Dev] Re: PEP 318: Decorators last before colon
Casey Duncan
casey at zope.com
Fri Apr 2 10:55:35 EST 2004
On Thu, 01 Apr 2004 17:25:20 -0500
David Abrahams <dave at boost-consulting.com> wrote:
> Jeremy Hylton <jeremy at alum.mit.edu> writes:
>
> > On Thu, 2004-04-01 at 07:13, Michael Hudson wrote:
> >> > I don't think Michel is saying they are worthless. However, the
> >> > proposed syntax is highly contentious. It would be good if there
> >> > was a short term solution that wouldn't require new syntax. That
> >> > would give Guido and the Python community time to figure out the
> >> > best syntax.
> >>
> >> We've been discussing this off and on for OVER A YEAR! If 'the
> >best> syntax' hasn't been figured out yet after N thousand emails on
> >the> subject, I see no reason to believe enlightenment is going to
> >arrive> soon (or ever).
> >
> > There's no particular reason to believe that effort alone will
> > arrive at an elegant solution. On the other hand, maybe there isn't
> > a good syntax for arbitrary decorators.
>
> Has something along these lines been discussed?
>
> with [staticmethod, classmethod]:
>
> def foo(x):
> pass
>
> def bar(x):
> pass
>
> IIUC, the PyObjC application needs whole swathes of functions with
> the same decoration, but this syntax isn't much worse for one
> function than for many.
What if you dropped the keyword?
[classmethod]:
def splat(cls):
pass
def baz(cls):
pass
Or how about as?
as classmethod:
def jinkies(cls):
pass
Which seems nice in the face of other declarations:
as protected(some_permission):
def zoinks(self, scooby, snack):
pass
def jinkies(self):
pass
or
[protected_by(some_permission)]:
def dangerous(self, risk):
pass
At least then the ambiguity is gone wrt unassigned lists before defs
(and I won't have to rewrite all that code where I'm using list
comprehensions as docs before method defs ;^). Also the grouping seems
useful.
OTOH, madatory bracketing seems unpythonic to me, which makes as/with
option (without mandatory brackets) seem compelling.
-Casey
More information about the Python-Dev
mailing list