[Python-Dev] eval and triple quoted strings (original) (raw)

PJ Eby pje at telecommunity.com
Fri Jun 14 23:03:14 CEST 2013


On Fri, Jun 14, 2013 at 2:11 PM, Ron Adam <ron3200 at gmail.com> wrote:

On 06/14/2013 10:36 AM, Guido van Rossum wrote:

Not a bug. The same is done for file input -- CRLF is changed to LF before tokenizing. Should this be the same? python3 -c 'print(bytes("""\r\n""", "utf8"))' b'\r\n'

eval('print(bytes("""\r\n""", "utf8"))') b'\n'

No, but:

eval(r'print(bytes("""\r\n""", "utf8"))')

should be. (And is.)

What I believe you and Walter are missing is that the \r\n in the eval strings are converted early if you don't make the enclosing string raw. So what you're eval-ing is not what you think you are eval-ing, hence the confusion.



More information about the Python-Dev mailing list