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
--
http://mail.python.org/mailman/listinfo/python-list