[Python-Dev] Re: new syntax for wrapping (PEP 318)
Paul Prescod
paul at prescod.net
Thu Feb 26 05:31:51 EST 2004
Shalabh Chaturvedi wrote:
> ...
>
> sync = synchronized(lock)
> def sync classmethod func(a):
>
> In fact sync would probably be reused throughout
> the class body.
In this case yes. But there are other usecases where it isn't as hot
(pseudo Spark):
grammar_rule = grammar("x := y z?")
def grammar_rule func1(a):
pass
grammar_rule = grammar("y := y1 y2?")
def grammar_rule func2(a):
pass
grammar_rule = grammar("z := z2? z1")
def grammar_rule func3(a):
pass
But it isn't terrible. It just means you need to create meaningless
temporaries. It also makes life a little harder for tools trying to read
the code and figure out what is going on. This is an easy pattern to
look for:
def sync func(a)[synchronized(lock)]:
For instance an IDE could make a tooltip wherever "func" is used to
indicate that it is synchronized with a particular lock. That gets much
harder if there are usually arbitrary amounts of Turing complete code
between the function declaration and the decorator declaration.
Another concern: It arguably HURTS readability if deciphering a function
declaration requires scanning backwards looking for definitions like the
one for "sync".
I certainly see the strength of your proposal from a readability point
of view.
Paul Prescod
More information about the Python-Dev
mailing list