embedding python: simulating sequence get item / set item methods

Alex Martelli aleax at mail.comcast.net
Mon Jan 16 20:09:13 EST 2006


Johannes Zellner <johannes at zellner.org> wrote:

> Hello,
> 
> when embedding python: how can I create a type which simulates item
> getters and setters? Something like this:
> 
> void setter(PyObject* self, int i, PyObject new_value)
> {
>     // do something
> }
> 
> PyObject* getter(PyObject* self, int i)
> {
>     // do something
>     return something;
> }
> 
> and I'd like the first method called if (from a python script):
> 
>     my_list[i] = value
> 
> and the second method, if accessing the list
> 
>     print str(my_list[i])
> 
> Is this possible?

Sure, see the details at <http://docs.python.org/api/newTypes.html> and
consider that what you want will need to go into a PyMappingMethods or
PySequenceMethods structure -- not well documented online, but just take
a look in the Python sources at the way the type objects for lists &c
are defined, and take it from there.


Alex



More information about the Python-list mailing list