To understand why Python version 2.6 and beyond have a
bytes type, it is necessary to review a little history.
Most early computing used 7- and 8-bit character codes, but these character sets are very limited. In particular, life was difficult for Francophone countries when “è” and “é” are very different letters. The 32-bit character set of the Unicode standard is the current preferred practice, and provides enough characters to last a good while into the future.
Text handling in the Python 2.x releases was awkward due to
the presence of two different types for representing character
Consequently, in the upcoming major incompatible 3.x releases,
all character data will be represented internally by 32-bit
Therefore, in Python 2.6 the
bytes type was
added to aid transition to the 3.0 family, which has a
bytes type for 8-bit character
strings. In the 3.x versions, a
bytes value is
a sequence of zero or more unsigned 8-bit integers, each in
the range 0–255, inclusive.
In Python 2.6 and subsequent versions, the
bytes type is a synonym for
bytes() function works exactly like the
>>> s=bytes(987) >>> s '987' >>> type(s) <type 'str'>
Use this type where your program expects 8-bit characters, and
it will ease the transition to Python 3.x, because the
semi-automated translation process will know that values of
bytes type are intended for sequences of 8-bit