使用boost :: python时获取对self的引用

时间:2012-08-10 01:01:11

标签: boost-python

我正在尝试使用boost :: python将Python类移植到C ++,希望加快Python应用程序的执行(我移植到C ++的类负责约30%的应用程序执行时间)

原始Python类的init看起来像:

class PyClass(object):
    def __init__(self, child):
        child.set_parent(self)
        ...

如何在C ++构造函数中复制它?

如果我有一个C ++类:

class CClass
{
    // to get input args that match the Python class I need
    CClass(boost::python::object &child)
    {
         // but how do I get the boost::python::object self
         // as I only have *this in C++ ?
         CClass& c = boost::python::extract<CClass&>(child);
         c.set_parent(self);
    }

    ...
}

谢谢,Mark

1 个答案:

答案 0 :(得分:3)

您可以this使用boost::python::ptr(this)指针,如this answer中所述。