Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #5605
| Date | 2011-05-17 13:20 -0700 |
|---|---|
| From | Ethan Furman <ethan@stoneleaf.us> |
| Subject | Re: Python 3.x and bytes |
| References | <4DD2C2A5.3080403@stoneleaf.us> <BANLkTimvzZeN5dmm2xHP5xV8Kpw2Nb9kuQ@mail.gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1705.1305662916.9059.python-list@python.org> (permalink) |
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~
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: Python 3.x and bytes Ethan Furman <ethan@stoneleaf.us> - 2011-05-17 13:20 -0700
csiph-web