How to define a bytes literal in Python 2.x for porting to Python 3.x using 2to3?
Terry Reedy
tjreedy at udel.edu
Sat Jan 1 15:10:44 EST 2011
More information about the Python-list mailing list
Sat Jan 1 15:10:44 EST 2011
- Previous message (by thread): How to define a bytes literal in Python 2.x for porting to Python 3.x using 2to3?
- Next message (by thread): How to define a bytes literal in Python 2.x for porting to Python 3.x using 2to3?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 1/1/2011 5:57 AM, Stefan Behnel wrote: > Terry Reedy, 01.01.2011 11:08: >> On 1/1/2011 4:08 AM, Baptiste Lepilleur wrote: >> >>> Is there a way to mark string literals so that 2to3 automatically >>> prefixes them with 'b'? Is there a simpler trick? >> >> Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit >> (Intel)] on win32 >> Type "copyright", "credits" or "license()" for more information. >> >>> b=b'abc' >> >>> b >> 'abc' >> >> The b prefix does nothing in 2.7. It was specifically added for this type >> of porting problem. > > More precisely, it was added in Python 2.6, so older Python versions > will consider it a syntax error. 'so' here means 'as a consequence' rather than 'with the intention' ;-). > To support older Python versions, you need to write your own wrapper > functions for bytes literals that do nothing in Python 2 and convert the > literal back to a bytes literal in Python 3. That's ugly, but there's no > other way to do it. I think the developers expected that most maintained and updated 2.x code, especially code targeted at 3.x also, would be migrated to 2.6+. -- Terry Jan Reedy
- Previous message (by thread): How to define a bytes literal in Python 2.x for porting to Python 3.x using 2to3?
- Next message (by thread): How to define a bytes literal in Python 2.x for porting to Python 3.x using 2to3?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list