PyCObject subtype PyObject

Michael Hudson mwh at python.net
Mon Jun 10 09:25:45 EDT 2002


Benjamin Tai <bt98 at doc.ic.ac.uk> writes:

> Michael Hudson wrote:
> 
> > > 2) For function "PyCObject_FromVoidPtr()", it takes in a "void*" as the
> > > first argument.
> > > For function "PyCObject_AsVoidPtr()", it returns a "void*".
> > > When implementing Python extension, what is the potential danger of
> > > casting pointers, of different size, to and from "void*"?
> >
> > Doesn't C guarantee that you can cast a pointer of type (T*) to
> > (void*) and back again for all T?  I was fairly sure it did.
> >
> 
> I am extending a C++ application with Python. Before attempting other
> possibilities, like Boost, I just want to document the work I have done so
> far.
> 
> Simply speaking I am hiding a C++ pointer, as a PyCObject*, inside a Python
> instance.
> 
> The scheme works OK. The C++ class hierarchy is reflected by Python classes.
> The pair of C++ and Python object is passed around between the two
> languages.

Oh, that makes sense.  Hmm, you're probably going to be OK but I doubt
you get a standard-backed guarantee any more.

> > > 4) Apart from exporting function between modules, are there any
> > > examples of using PyCObject?
> >
> 
> The example, in the Python/C API document, is talking about exporting
> functions between Python modules. So I am wondering if my method is valid?

I think so.

Cheers,
M.

-- 
  I'm a keen cyclist and I stop at red lights.  Those who don't need
  hitting with a great big slapping machine.
                                           -- Colin Davidson, cam.misc



More information about the Python-list mailing list