How to create a writeable buffer?

Steve Chaplin stevech1097 at yahoo.com.au
Mon Nov 20 13:29:01 CET 2006


I'm trying to create an object (as a C extension) to support the buffer 
interface and was getting "TypeError: buffer is read-only" errors. So I 
had a look at the array object and it has the same problem:

$ python
 >>> import array
 >>> a=array.array('c', ['a', 'b', 'c'])
 >>> a
array('c', 'abc')
 >>> a[0]
'a'
 >>> a[0]='d'
 >>> a
array('c', 'dbc')
 >>> buf=buffer(a)
 >>> buf[0]
'd'
 >>> buf[0]='e'
TypeError: buffer is read-only

The array is a mutable (writable) object, and the array implements the 
buffer interface and provides a 'getwritebuf' method.
(Python-2.4.4/Modules/arraymodule.c has an array_buffer_getwritebuf())
so why does it give "TypeError: buffer is read-only"?

Steve



More information about the Python-list mailing list