Python/C API: Python class instance information in C?
Bernt Ribbum
bernt at tordivel.no
Fri Mar 21 02:59:30 EST 2003
In a C module function, is it possible to extract information about a Python
class instance being sent as argument?
To explain a bit further... A C module (METH_VARARGS wrapper) function
prototype looks something like
PyObject *spam_func(PyObject *self, PyObject *args);
The Python arguments are found (possibly inside a tuple) in "args", and I
can handle this for standard Python types like ints, floats, etc., and also
for types exported from my C module. What I stumble on, is Python code like
this:
import spam
class X:
pass
x = X()
spam.func(x)
In this case I don't know how to extract information about the object. All I
can find (from the C debugger) is that the object in question has an ob_type
of _PyInstance_Type. (A call to PyInstance_Check() will return true, but
unfortunately the documentation states "There are very few functions
specific to instance objects". In fact, there is only the check function
above and two New functions. Nothing else.)
Is it possible for me to get more information here? I would like to know, at
least, that this object is of type "class X" or similar.
Any help appreciated :-)
Thanks
--
- Bernt
---------------------------------------------------------------------------
TORDIVEL AS http://www.tordivel.no
Storgata 20 0184 OSLO NORWAY
Tel +47 2315 8700 Fax +47 2315 8701
Bernt Ribbum bernt at tordivel.no bernt.ribbum at ieee.org
Direct: +47 2315 8714 Mobile: +47 906 106 85
---------------------------------------------------------------------------
More information about the Python-list
mailing list