[Python-Dev] eval and triple quoted strings
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