Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #5605 > unrolled thread

Re: Python 3.x and bytes

Started byEthan Furman <ethan@stoneleaf.us>
First post2011-05-17 13:20 -0700
Last post2011-05-17 13:20 -0700
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Python 3.x and bytes Ethan Furman <ethan@stoneleaf.us> - 2011-05-17 13:20 -0700

#5605 — Re: Python 3.x and bytes

FromEthan Furman <ethan@stoneleaf.us>
Date2011-05-17 13:20 -0700
SubjectRe: Python 3.x and bytes
Message-ID<mailman.1705.1305662916.9059.python-list@python.org>
Felipe Bastos Nunes wrote:
> 2011/5/17 Ethan Furman 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?
 >
> They accept .replace(b"00", b"12") for example.

So they do.  Although that particular example doesn't work since b'0' is 
the integer 48...

--> huh.replace(b'00',b'12')
b'\x00\x00\x00\x00\x00'


The big question, though, is would you do it this way:

some_var = bytes(23).replace(b'\x00', b'a')

or this way?

some_var = bytes(b'a' * 23)

~Ethan~

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web