[C++-sig] Expose c++ class as python module
talljimbo at gmail.com
Tue Nov 9 22:09:33 CET 2010
On 11/09/2010 12:31 PM, Simon W wrote:
> I want to export my c++ class and make an instance of it and then expose
> it to python as if it were a python module. Is it possible?
> // export and create instance
> class_<myClass> [...];
> namespace["instance"] = ptr( instanceOfMyClass );
> Then in python:
> import instance
This is not possible to do directly, as boost::python::class_ makes a
Python type object, and that's fundamentally different from a Python
You can simulate this by doing tricks on the Python side, however:
- Make a regular Boost.Python module.
- In your module-that-mimics-a-class (pure Python), instantiate your
instance in Python as a hidden module-level variable.
- Extract bound methods from the instance and assign them to
More information about the Cplusplus-sig