我有两个类,第一个称为“Radish”,第二个称为“RadishCont”。 所有代码都是用C++编写的,需要在python中使用。
Radish 已经使用 SWIG 接触了 python;相反,RadishCont 已使用 boost::python 公开。
我需要在 RadishCont 类中添加一个具有以下语法的方法:
Radish* get_radish()
{
return &radish;
}
其中“radish”是 RadishCont 中包含的 Radish 实例。
当我执行 python 代码时,我收到此异常:
TypeError: No Python class registered for C++ class Radish
所以,我的问题是:如何使这个方法在 python 中工作而不使用 SWIG 重写 RadishCont ?
最佳答案
我非常确定您最好重写 SWIG 界面以包含新功能。 SWIG 对类/函数使用内部注册系统,该系统与 boost::pythons 系统不兼容(或者至少不是开箱即用的)。
关于c++ - boost::python 和 swig 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915965/