给定由PyObject创建的PyBindGen,很容易获得指向包装的C ++对象的指针,只需在struct中使用obj成员即可:

typedef struct {
    PyObject_HEAD
    MyWrappedClass *obj;
    PyObject *inst_dict;
    PyBindGenWrapperFlags flags:8;
} PyMyWrappedClass;


但是,假设我只有MyWrappedClass*,并且想要获取包装它的PyObject(如果有的话,它可能不存在)。有什么方法可以在不维护我自己的backpointers字典的情况下进行此操作?

最佳答案

如果我因为对PyBindGen不熟悉而享有足够的声誉,那么我会将此添加为注释,但是除非inst_dict是反向指针字典(顾名思义,否则),我认为您不走运(除非您想遍历Python堆以查看那里是否有类的任何实例)。

关于c++ - 如何获取给定C++指针的PyBindGen PyObject?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6334753/

10-11 16:54