|
Boost Users : |
Subject: [Boost-users] [boost-users][python]
From: Germán Diago (germandiago_at_[hidden])
Date: 2009-05-01 10:48:24
I have a question about managing python objects.
I have a base class implemented in c++, which I use in python.
>From python I inherit that class. And the I try to use the python
instance from c++, like this.
//This class has a function which is registered in python. I want to
//be able to register python instances with this class
class AnotherClass {
void registerobject(const std::string & name, MyBaseClass * a)
{
v.push_back(a);
}
};
//Interface class, which I inherit in python
class MyBaseClass {
virtual const std::string getData(Object * o) const = 0;
};
>From python:
class MyPyClass(MyBaseClass):
def __init__(self):
MyBaseClass.__init__(self)
def getData(self, o):
return "hello"
My question is. In order to register that class, namely,
MyPyClass(which is a python class):
can I do it through registerobject?
Or should I implement something like this?:
class AnotherClass {
void registerobject(const std::string & name, python::object & o)
{
MyBaseClass * m = extract<MyBaseClass>(o);
v.push_back(m);
}
};
In all two cases I get error_already_set exception when I try to execute the
registerobject function and don't know why.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net