[Python-ideas] Make keywords KEYwords only in places they would have syntactical meaning
python at mrabarnett.plus.com
Fri May 18 12:56:33 EDT 2018
On 2018-05-18 12:22, Ken Hilton wrote:
> Hi all,
> Yes, this is another idea for avoiding breaking existing code when
> introducing new keywords. I'm not sure if this is too similar to Guido's
> previous "allow keywords in certain places" idea, but here goes:
> Only treat keywords as having any special meaning when they are in
> places with syntactical significance.
> So, currently, let's say someone set the variable "and_" to some value.
> The following lines are both SyntaxErrors:
> True and_ False
> obj.and = value
> And the following are both correct:
> True and False
> obj.and_ = value
> My idea is to only treat keywords as having special meaning when they're
> in the right place. So the following would all be legal:
> >>> from operator import and
> >>> var = and(True, False)
> >>> var
> >>> var = True and False
> >>> var
> >>> def except(exc, def):
> ... try:
> ... return def()
> ... except exc as e:
> ... return e
> >>> except(ZeroDivisionError, lambda: 1/0)
> ZeroDivisionError('division by zero',)
> >>> except(ZeroDivisionError, lambda: 0/1)
> >>> import asyncio as await #this is already currently legal, but
> will not be in the __future__
> >>> async def async(def):
> ... return await await.get_event_loop().run_in_executor(None, def)
> And so on.
> What are your thoughts?
This would be legal, but what would happen?
f = foo()
More information about the Python-ideas