Remember that you can omit most of these functions, in which case you
provide 0
as a value. There are type definitions for each of
the functions you must provide. They are in object.h in the
Python include directory that comes with the source distribution of
Python.
In order to learn how to implement any specific method for your new
datatype, do the following: Download and unpack the Python source
distribution. Go the the Objects directory, then search the
C source files for tp_
plus the function you want (for
example, tp_print
or tp_compare
). You will find
examples of the function you want to implement.
When you need to verify that an object is an instance of the type you are implementing, use the PyObject_TypeCheck function. A sample of its use might be something like the following:
if (! PyObject_TypeCheck(some_object, &MyType)) { PyErr_SetString(PyExc_TypeError, "arg #1 not a mything"); return NULL; }