2024-05-13 01:41:55 发布
网友
我可以使用SigiguNePoTeObjoc将C++对象传递给Python,但它不是 pyObject *,所以我不能正确地使用它。在
struct foo {}; struct foo *test() { static struct foo inst; return &inst; }
Python中对test()的每个调用都将返回一个新的PyObject-SWIG无法轻松地知道它们是相同的。在
test()
PyObject
返回的^ {< CD1>}是薄包装,即围绕没有本地状态的C++对象的代理。从Python的角度来看,它们看起来和行为都是相同的对象,因为它们把所有东西都委托给C++对象。在
如果你想得到 >eEM>^ },你可以用这种方法,但一般来说,这不是一个好主意,因为即使对同一个C++对象,对该对象的任何更改都不会从其他^ {< CD1>}s中看到。在
Python中对
test()
的每个调用都将返回一个新的PyObject
-SWIG无法轻松地知道它们是相同的。在返回的^ {< CD1>}是薄包装,即围绕没有本地状态的C++对象的代理。从Python的角度来看,它们看起来和行为都是相同的对象,因为它们把所有东西都委托给C++对象。在
如果你想得到 >eEM>^ },你可以用这种方法,但一般来说,这不是一个好主意,因为即使对同一个C++对象,对该对象的任何更改都不会从其他^ {< CD1>}s中看到。在
相关问题 更多 >
编程相关推荐