On 21/12/2013 13:20, Peter Otten wrote:
Mark Lawrence wrote:

On 21/12/2013 01:58, Ned Batchelder wrote:

If you have a zero, you can split on it with:
bytestring.split(bytes([0])), but that doesn't explain why find can take
a simple zero, and split has to take a bytestring with a zero in it.


Create a bytearray(range(256)) and partition it on 128.  I'd expect to
see the original effectively cut in half with 128 as the separator.  You
actually get the original with two empty bytearrays, which makes no
sense to me at all.

bytearray(b"alpha\x00\x00\x00beta").partition(0)
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
ValueError: empty separator
bytearray(b"alpha\x00\x00\x00beta").partition(1)
(bytearray(b'alpha'), bytearray(b'\x00'), bytearray(b'\x00\x00beta'))
bytearray(b"alpha\x00\x00\x00beta").partition(2)
(bytearray(b'alpha'), bytearray(b'\x00\x00'), bytearray(b'\x00beta'))

suggests that there is an implicit cast to bytearray

bytearray(0)
bytearray(b'')
bytearray(2)
bytearray(b'\x00\x00')

While consistent I don't see how this can ever be the desired behaviour and
recommend that you file a bug report.


http://bugs.python.org/issue20047

--
My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language.

Mark Lawrence

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to