我正在为 Python 制作 C++ 扩展,并且我正在尝试执行以下操作:
// this function assigns a C++ pointer to as attribute of a python object
void function1(PyObject* p){
// equivalent of p.attr = cpp_attr;
MyClass* cpp_attr = new MyClass();
PyObject* args = PyTuple_Pack(cpp_attr);
PyObject_SetAttrString(p, (char*)"attr", args);
}
我想检索此指针并将其设置为另一个 C++ 对象的属性。我知道如何获得,PyObject*
但在那之后我不知道该怎么办了
MySecondClass::MySecondClass(PyObject* p){
// get the attribute from p; equivalent of cpp_attr = p.attr
PyObject* cpp_attr = PyObject_getAttrString(p, (char*)"attr"));
// somehow get back the pointer to MyClass object created in function1
}
我查看了文档,但找不到任何返回原始类型的内容。有没有办法做到这一点?
谢谢