Python 3.x and bytes

Ian Kelly ian.g.kelly at gmail.com
Tue May 17 15:20:32 EDT 2011


On Tue, May 17, 2011 at 12:47 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
> In Python 3 one can say
>
> --> huh = bytes(5)
>
> Since the bytes type is actually a list of integers, I would have expected
> this to have huh being a bytestring with one element -- the integer 5.
>  Actually, what you get is:
>
> --> huh
> b'\x00\x00\x00\x00\x00'
>
> or five null bytes.  Note that this is an immutable type, so you cannot go
> in later and say
>
> --> huh[3] = 9
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
> TypeError: 'bytes' object does not support item assignment
>
>
> So, out of curiosity, does anyone actually use this, um, feature?

I suppose it's for interoperability with the mutable bytearray type,
which takes the same parameters in the constructor.



More information about the Python-list mailing list