[Python-3000] Are bytes object really immutable?
Amaury Forgeot d'Arc
amauryfa at gmail.com
Wed Apr 2 23:47:58 CEST 2008
Stop me if I'm wrong, but I thought that bytes objects are immutable
(they are based on the PyStringType, after all)
But I was surprised by this code in test_socket.py::
buf = b" "*1024
nbytes = self.cli_conn.recv_into(buf)
And this in getargs.c::
case 'w': { /* memory buffer, read-write access */
...
((temp = (*pb->bf_getbuffer)(arg, &view,
PyBUF_SIMPLE)) != 0) ||
(I'd expect PyBUF_READONLY)
And this in stringobject.c::
static int
string_buffer_getbuffer(PyStringObject *self, Py_buffer *view, int flags)
{
return PyBuffer_FillInfo(view, (void *)self->ob_sval, Py_SIZE(self),
0, flags);
}
(The zero is the "readonly" parameter)
Is all of this wrong?
--
Amaury Forgeot d'Arc
More information about the Python-3000
mailing list