> "harold fellermann" <[EMAIL PROTECTED]> wrote in message > news:[EMAIL PROTECTED] > Hi all, > > I once read that it is possible to use a python base class for a C > extension class.
On 14.06.2005, at 09:29, Grigoris Tsolakidis wrote: > There was good article of how to do this on DDJ home page www.ddj.com unfortunately, I could not find it yet. I managed to do the following: I the initmodule function of my extension, I import the module and look for the class I want to use as a base class: PyObject *base_module = PyImport_ImportModule("module_name"); if (!base_module) return; PyObject *base_class = PyMapping_GetItemString( PyModule_GetDict(base_module,"BaseClass") ); if (!base_class) return; This gives me a pointer to the class I want to use as base class. Does anyone know how to assign this to the extension class? I tried to build a tuple (BaseClass,) and assign it (after the respective PyType_Ready call) to CClass.__bases__ like this: PyObject_SetAttrString( &cclassType, "__bases__", Py_BuildValue("(O,)",base_class) ); but this raises a TypeError when executed during import: TypeError: can't set attributes of built-in/extension type 'ext_module.CClass' Any ideas how to proceed? - harold - -- You can imagine the opposite -- Maurizio Nannucci -- http://mail.python.org/mailman/listinfo/python-list