On Sun, Aug 21, 2016 at 5:51 PM, Franklin? Lee
<leewangzhong+pyt...@gmail.com> wrote:
> Speaking of which, how is this parsed?
>         f"{'\n'}"
> If escape-handling is done first, the expression is a string literal holding
> an actual newline character (normally illegal), rather than an escape
> sequence which resolves to a newline character.

It's illegal.

> If that one somehow works, how about this?
>         f"{r'\n'}"

Also illegal.

> I guess you'd have to write one of these:
>         f"{'\\n'}"
>         f"{'''\n''')"
>         rf"{'\n'}"

Modulo the typo in the second one, these all result in the same code:

>>> dis.dis(lambda: f"{'\\n'}")
  1           0 LOAD_CONST               1 ('\n')
              2 FORMAT_VALUE             0
              4 RETURN_VALUE
>>> f"{'\\n'}"
'\n'

ChrisA
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to