#3220: improve bytes docs a bit.

This commit is contained in:
Georg Brandl 2008-07-01 20:08:02 +00:00
parent 07a1f94fb7
commit 18da8f06eb
1 changed files with 15 additions and 12 deletions

View File

@ -512,17 +512,21 @@ string literals. In addition to the functionality described here, there are
also string-specific methods described in the :ref:`string-methods` section.
Bytes and bytearray objects contain single bytes -- the former is immutable
while the latter is a mutable sequence. Bytes objects can be constructed from
literals too; use a ``b`` prefix with normal string syntax: ``b'xyzzy'``. To
construct byte arrays, use the :func:`bytearray` function.
while the latter is a mutable sequence. Bytes objects can be constructed the
constructor, :func:`bytes`, and from literals; use a ``b`` prefix with normal
string syntax: ``b'xyzzy'``. To construct byte arrays, use the
:func:`bytearray` function.
.. warning::
While string objects are sequences of characters (represented by strings of
length 1), bytes and bytearray objects are sequences of *integers* (between 0
and 255), representing the ASCII value of single bytes. That means that for
a bytes or bytearray object *b*, ``b[0]`` will be an integer, while ``b[0:1]``
will be a bytes or bytearray object of length 1.
a bytes or bytearray object *b*, ``b[0]`` will be an integer, while
``b[0:1]`` will be a bytes or bytearray object of length 1. The
representation of bytes objects uses the literal format (``b'...'``) since it
is generally more useful than e.g. ``bytes([50, 19, 100])``. You can always
convert a bytes object into a list of integers using ``list(b)``.
Also, while in previous Python versions, byte strings and Unicode strings
could be exchanged for each other rather freely (barring encoding issues),
@ -1413,12 +1417,11 @@ Wherever one of these methods needs to interpret the bytes as characters
The bytes and bytearray types have an additional class method:
.. method:: bytes.fromhex(string)
bytearray.fromhex(string)
This :class:`bytes` class method returns a bytes object, decoding the given
string object. The string must contain two hexadecimal digits per byte, spaces
are ignored.
Example::
This :class:`bytes` class method returns a bytes or bytearray object,
decoding the given string object. The string must contain two hexadecimal
digits per byte, spaces are ignored.
>>> bytes.fromhex('f0 f1f2 ')
b'\xf0\xf1\xf2'