0

私は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
    
}

ドキュメントを見ましたが、元の型を返すものは見つかりませんでした。とにかくこれを行うことはありますか?

ありがとう

4

2 に答える 2