[C++-sig] set python attribute from C++
Ralf W. Grosse-Kunstleve
rwgk at yahoo.com
Wed Jul 16 00:57:20 CEST 2008
I'd rewrite foo (untested, rough):
void foo( boost::python::object& obj )
{
obj.attr( "field" ) = 1;
A& a = boost::python::extract<A&>(obj);
}
I'm not sure if the extract call is correct, but I hope it is useful as a start.
Ralf
----- Original Message ----
From: Gennadiy Rozental <rogeeff at gmail.com>
To: c++-sig at python.org
Sent: Tuesday, July 15, 2008 3:39:33 PM
Subject: [C++-sig] set python attribute from C++
Hi,
Trivial question (I hope)
Let's say I have class A, which I export;
class A { ... };
class_<A,...>( "A" );
In python I wrote another class inherited from B:
class B(A):
pass
Now I've got the function in C++:
void foo( A& obj )
{
// ?? question is what to do here
}
which is exported
def( "foo", &foo );
and is called from python liek this:
o = B()
foo( o )
The question:
How can I set object attribute inside the function foo implementation. More
generally: how can I get access ot the underlying python object?
essentially I want something like this:
void foo( A& obj )
{
boost::python::object o = get_py_object( obj );
o.attr( "field" ) = 1;
}
Please advide,
Gennadiy
_______________________________________________
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