[Python-ideas] Crazy idea: allow keywords as names in certain positions
rob.cliffe at btinternet.com
Sun May 13 22:47:07 EDT 2018
On 13/05/2018 19:19, Guido van Rossum wrote:
> As anyone still following the inline assignment discussion knows, a
> problem with designing new syntax is that it's hard to introduce new
> keywords into the language, since all the nice words seem to be used
> as method names in popular packages. (E.g. we can't use 'where'
> because there's numpy.where
> and we can't use 'given' because it's used in Hypothesis
> The idea I had (not for the first time :-) is that in many syntactic
> positions we could just treat keywords as names, and that would free
> up these keywords.
> For example, we could allow keywords after 'def' and after a period,
> and then the following would become legal:
> class C:
> def and(self, other):
> return ...
> a = C()
> b = C()
> This does not create syntactic ambiguities because after 'def' and
> after a period the grammar *always* requires a NAME.
> There are other positions where we could perhaps allow this, e.g. in a
> decorator, immediately after '@' (the only keyword that's
> *syntactically* legal here is 'not', though I'm not sure it would ever
> be useful).
Please, imagine how you would write the documentation to explain this.
Then, please, put yourself in the position of someone who teaches Python
trying to explain it.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas