On 24/01/2015 17:26, Steven D'Aprano wrote:
Rick Johnson wrote:

On Saturday, January 24, 2015 at 7:30:02 AM UTC-6, Steven D'Aprano wrote:
[...] It requires extra complexity to the parser, so that
decorators may be separated from the function by a hint:

@decorate
"@typehint: (str, int) -> bool"
def myfunction(arg1, arg2):

No doubt some people will get them the wrong way around,
and the type checker may silently ignore their hints:

"@typehint: (str, int) -> bool"
@decorate
def myfunction(arg1, arg2):

And others will write:

@decorate
@typehint(str, int) -> bool
def myfunction(arg1, arg2):


and be annoyed or perplexed by the syntax error.

Some syntax will be a bug magnet. This is one.

Your argument is weak here. If the interpreter cannot
distinguish between "@typehint ..." and "@ ..."

Thank you for demonstrating my point for me.

The difference is not

@typehint(...)
def func(...):

versus any other decorator, but the STRING:

"@typehint(...)"

being used where a decorator would normally be expected.

If a genius of the degree like Rick can be fooled, what hope do ordinary
mortals have?


So Rick is having a bad hair day, hence using fuzzy logic? Ooh, that one is so bad even my stomach hurts :)

--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to