我正在使用 Boost.Python 来包装 C++ 库。
如何确保始终为特定 C++ 实例(通过指针标识)返回相同的 Python 实例(通过对象标识)?我无法扩展 C++ 类,但如果有帮助,我可以添加成员变量(例如 PyObject * 或 boost::python::handle<>)。我在想我应该能够在 C++ 实例中缓存 Python 实例,并返回缓存的实例而不是创建一个新实例。但是,我无法弄清楚需要什么包装代码。
要包装的示例类:
class C {
public:
boost::python::handle<> wrapper_;
private:
C();
C(const C &);
~C();
};
任何人都可以提供建议吗?