[Python-ideas] Verbatim names (allowing keywords as names)

Steven D'Aprano steve at pearwood.info
Thu May 17 21:34:26 EDT 2018

On Thu, May 17, 2018 at 11:41:33AM -0700, Neil Girdhar wrote:
> My preference is to do nothing.  If you end up making "where" a keyword in 
> Python 3.8, numpy will probably:

This is only incidently about "where". I'm hoping that the "where" (or 
"given") proposal is rejected. It is so verbose and redundantly 
repetitious in the common case that rather than being an improvement 
over the status quo, it is worse. But that's by-the-by.

> * rename their where function to "where_" in 3.8
> * add a where_ alias in Python < 3.8.
> And then people will have to fix their code in 3.8 anyway.  Only instead of 
> learning a new verbatim syntax, they will just add the familiar underscore.

You should be thinking forward two or three versions from now, when 
\name is the familiar syntax and name_ looks like you started to write 
an identifier using the underscore_words_convention but got distracted 
halfway through.

Remember that (if approved) verbatim names will not be "that new syntax" 
for long. We don't still talk about "that new fangled list comprehension 
syntax" or "that new yield keyword". That was the problem with the "old 
versus new style classes" terminology: at the point that "new-style 
classes" had been around for six releases, approaching a decade, they 
weren't new any more.

> One thing that should ideally be done is to improve the SyntaxError 
> processing to special case use of keywords in places that identifiers are 
> used. 

This is worth doing regardless of whether or not we get verbatim strings 
or some other alternative. You ought to raise it on the bug tracker.


More information about the Python-ideas mailing list