[Python-ideas] Verbatim names (allowing keywords as names)
Guido van Rossum
guido at python.org
Tue May 15 21:09:03 EDT 2018
I like it. I much prefer \ to $ since in most languages that use $ that I
know of (Perl, shell) there's a world of difference between $foo and foo
whenever they occur (basically they never mean the same thing), whereas at
least in shell, \foo means the same thing as foo *unless* foo would
otherwise have a special meaning.
I also recall that in some Fortran dialect I once used, $ was treated as
the 27th letter of the alphabet, but not in the language standard. See e.g.
it has a similar role in Java (
On Tue, May 15, 2018 at 8:41 PM, Steven D'Aprano <steve at pearwood.info>
> Inspired by Alex Brault's post:
> I'd like to suggest we copy C#'s idea of verbatim identifiers, but using
> a backslash rather than @ sign:
> would allow "name" to be used as an identifier, even if it clashes with
> a keyword.
> It would *not* allow the use of characters that aren't valid in
> identifiers, e.g. this is out: \na!me # still not legal
> See usage #1 here:
> If "verbatim name" is too long, we could call them "raw names", by
> analogy with raw strings.
> I believe that \ is currently illegal in any Python expression, except
> inside strings and at the very end of the line, so this ought to be
> syntactically unambgiguous.
> We should still include a (mild?) recommendation against using keywords
> unless necessary, and a (strong?) preference for the trailing underscore
> convention. But I think this doesn't look too bad:
> of = 'output.txt'
> \if = 'input.txt'
> with open(\if, 'r'):
> with open(of, 'w'):
> maybe even nicer than if_.
> Some examples:
> result = \except + 1
> result = something.\except
> result = \except.\finally
> Python-ideas mailing list
> Python-ideas at python.org
> Code of Conduct: http://python.org/psf/codeofconduct/
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas