]> granicus.if.org Git - python/commitdiff
Note how bytes alias is expected to be used
authorAndrew M. Kuchling <amk@amk.ca>
Wed, 8 Oct 2008 13:21:14 +0000 (13:21 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Wed, 8 Oct 2008 13:21:14 +0000 (13:21 +0000)
Doc/whatsnew/2.6.rst

index d28f8f75a64dfa5abda8a110ee78d2d8f36b2db3..44f019c03d1f89273c4e98eb48f272a39fc7d4e3 100644 (file)
@@ -949,6 +949,20 @@ or using a :class:`bytes` constructor.  For future compatibility,
 Python 2.6 adds :class:`bytes` as a synonym for the :class:`str` type,
 and it also supports the ``b''`` notation.
 
+
+The 2.6 :class:`str` differs from 3.0's :class:`bytes` type in various
+ways; most notably, the constructor is completely different.  In 3.0,
+``bytes([65, 66, 67])`` is 3 elements long, containing the bytes
+representing ``ABC``; in 2.6, ``bytes([65, 66, 67])`` returns the
+12-byte string representing the :func:`str` of the list.
+
+The primary use of :class:`bytes` in 2.6 will be to write tests of
+object type such as ``isinstance(x, bytes)``.  This will help the 2to3
+converter, which can't tell whether 2.x code intends strings to
+contain either characters or 8-bit bytes; you can now 
+use either :class:`bytes` or :class:`str` to represent your intention 
+exactly, and the resulting code will also be correct in Python 3.0.
+
 There's also a ``__future__`` import that causes all string literals
 to become Unicode strings.  This means that ``\u`` escape sequences
 can be used to include Unicode characters::