On 11/09/2010 12:31 PM, Simon W wrote:
Hi,
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

instance.someFunction()


This is not possible to do directly, as boost::python::class_ makes a Python type object, and that's fundamentally different from a Python module object.

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 module-level variables.


Jim Bosch

_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to