[Python-Dev] Call for prudence about PEP-572
Chris Angelico
rosuav at gmail.com
Sun Jul 8 13:59:10 EDT 2018
On Mon, Jul 9, 2018 at 3:55 AM, Eric V. Smith <eric at trueblade.com> wrote:
> I agree with Chris in this case. That said, there is at least one place
> where the grammar does forbid you from doing something that would otherwise
> make be allowable: decorators.
>
>>>> @lookup[0]
> File "<stdin>", line 1
> @lookup[0]
> ^
> SyntaxError: invalid syntax
>
> But this works:
>
>>>> new_decorator = lookup[0]
>>>> @new_decorator
> ... def f(): pass
>
> Thus, the idea of restricting the type of expression that can be used in
> particular circumstances is not without precedent, and should not be
> dismissed at face value. That is, unless we want to remove the restriction
> on decorators, which I'm okay with, too. I have occasionally wanted to do
> something more complicated with a decorator, and used the workaround above.
>
This is true. I wasn't around when decorator syntax was discussed;
what were the reasons for this being the way it is? It isn't simply
"'@' test".
ChrisA
More information about the Python-Dev
mailing list