私は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
}
ドキュメントを見ましたが、元の型を返すものは見つかりませんでした。とにかくこれを行うことはありますか?
ありがとう