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