[C++-sig] Passing an instance...
Beau Sapach
beau.sapach at ualberta.ca
Fri Nov 3 20:57:23 CET 2006
Hi Stefan,
Yes.... I originally got a copy of this code (and the recommendation to move
to the CVS version) from you via this list. When I last left boost, using
your example code, the library was crashing on:
bpl::object main = python::import("__main__");
as I was trying to add my instance to the main module's dictionary. Because
of that I've abandoned boost for the time being and am trying to simply
understand the C API better. I suppose I could look into the boost::python
code to see what operator[] is doing but I was hoping a quick answer from
the mailing list would point me in the right direction, with either the
correct API function or telling me what I'm missing.
Beau
-----Original Message-----
From: c++-sig-bounces at python.org [mailto:c++-sig-bounces at python.org] On
Behalf Of Stefan Seefeld
Sent: Friday, November 03, 2006 12:11 PM
To: Development of Python/C++ integration
Subject: Re: [C++-sig] Passing an instance...
Beau Sapach wrote:
> Hello everyone,
>
>
>
> I've got a C++ object that I've created a Python type for. When I
> insert the object into the main module using PyModule_AddObject then I
> can instantiate it in Python and everything works just fine. I
> assumed (mostly from reading other's code) that I could use something
like:
>
>
>
> PyDict_SetItemString(MainDict,"x",pMyObject)
Up to this point there is no need to use the C API directly. Assuming you
have exported your C++ type 'Type' to python, you can write (inside C++):
namespace bpl = boost::python;
bpl::object instance(Type(...));
bpl::dict global;
global["instance"] = instance;
bpl::exec_file(python_script, global, global);
and the executed script can access your Type instance directly through the
'instance' variable.
Caution: the 'exec_file' function has been added after 1.33.1, so you need
to use a CVS snapshot.
Regards,
Stefan
--
...ich hab' noch einen Koffer in Berlin...
_______________________________________________
C++-sig mailing list
C++-sig at python.org
http://mail.python.org/mailman/listinfo/c++-sig
More information about the Cplusplus-sig
mailing list