[C++-sig] Passing C++ instance to embedded py

fileoffset fileoffset at gmail.com
Thu Nov 20 06:29:49 CET 2008

To best explain my problem, here is some code:

struct A
		mTest = 1;

		std::cout << "Test: " << mTest;

		object main_module = import("__main__");
		object main_namespace = main_module.attr("__dict__");

		main_namespace["A_Instance"] = this;

		object result = exec_file(str("test.py"), main_namespace, main_namespace);

		std::cout << "Test: " << mTest;

	int mTest;

in main.cpp or similar:

    class_<A>("A", init<>())
        .def_readwrite("Test", &A::mTest)


from MyModule import *

A_Instance.Test = 5

Essentially I want to be able to access and modify the properties of an instance of a C++ class
at runtime.

When I try code similar to above, python excepts, as I believe it attempts to copy-construct
the A class instead of just pass the reference (this) so that i can modify it.

Is what I want possible? If not what would be a better way to do it?

file offset <fileoffset at gmail.com>

More information about the Cplusplus-sig mailing list