Bytes indexing returns an int
Chris Angelico
rosuav at gmail.com
Tue Jan 7 19:30:49 EST 2014
On Wed, Jan 8, 2014 at 11:15 AM, Steven D'Aprano
<steve+comp.lang.python at pearwood.info> wrote:
> Why decide that the bytes type is best considered as a list of
> bytes rather than a string of bytes? It doesn't have any list methods, it
> looks like a string and people use it as a string. As you have discovered,
> it is an inconvenient annoyance that indexing returns an int instead of a
> one-byte byte-string.
>
> I think that, in hindsight, this was a major screw-up in Python 3.
Which part was? The fact that it can be represented with a (prefixed)
quoted string?
bytes_value = (41, 42, 43, 44)
string = bytes_value.decode() # "ABCD"
I think it's more convenient to let people use a notation similar to
what was used in Py2, but perhaps this is an attractive nuisance, if
it gives rise to issues like this. If a bytes were more like a tuple
of ints (not a list - immutability is closer) than it is like a
string, would that be clearer?
Perhaps the solution isn't even a code one, but a mental one. "A bytes
is like a tuple of ints" might be a useful mantra.
ChrisA
More information about the Python-list
mailing list