[Python-Dev] eval and triple quoted strings
Benjamin Peterson
benjamin at python.org
Tue Jun 18 01:40:01 CEST 2013
More information about the Python-Dev mailing list
Tue Jun 18 01:40:01 CEST 2013
- Previous message: [Python-Dev] eval and triple quoted strings
- Next message: [Python-Dev] eval and triple quoted strings
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2013/6/17 Greg Ewing <greg.ewing at canterbury.ac.nz>: > Guido van Rossum wrote: >> >> No. Executing a file containing those exact characters produces a >> string containing only '\n' and exec/eval is meant to behave the same >> way. The string may not have originated from a file, so the universal >> newlines behavior of the io module is irrelevant here -- the parser >> must implement its own equivalent processing, and it does. > > > I'm still not convinced that this is necessary or desirable > behaviour. I can understand the parser doing this as a > workaround before we had universal newlines, but now that > we do, I'd expect any Python string to already have newlines > converted to their canonical representation, and that any CRs > it contains are meant to be there. The parser shouldn't need > to do newline translation a second time. It used to be that way until 2.7. People like to do things like with open("myfile.py", "rb") as fp: exec fp.read() in ns which used to fail with CRLF newlines because binary mode doesn't have them. I think this is actually the correct way to execute Python sources because the parser then handles the somewhat complicated process of decoding Python source for you. -- Regards, Benjamin
- Previous message: [Python-Dev] eval and triple quoted strings
- Next message: [Python-Dev] eval and triple quoted strings
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list