我如何得到*Wig对象与C++对象在SWIG中的关联?

2024-05-13 01:41:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以使用SigiguNePoTeObjoc将C++对象传递给Python,但它不是 pyObject *,所以我不能正确地使用它。在

<> > >我的问题是:有没有一种方法可以从C++中创建Python的C++对象的< EEM> pyObject?在


Tags: 对象方法pyobjecteemsigigunepoteobjoc
1条回答
网友
1楼 · 发布于 2024-05-13 01:41:55
<> C++对象没有一个唯一的{{CD1>}。例如,如果您包装以下内容:

struct foo {};

struct foo *test() {
  static struct foo inst;
  return &inst;
}

Python中对test()的每个调用都将返回一个新的PyObject-SWIG无法轻松地知道它们是相同的。在

返回的^ {< CD1>}是薄包装,即围绕没有本地状态的C++对象的代理。从Python的角度来看,它们看起来和行为都是相同的对象,因为它们把所有东西都委托给C++对象。在

如果你想得到 >eEM>^ },你可以用这种方法,但一般来说,这不是一个好主意,因为即使对同一个C++对象,对该对象的任何更改都不会从其他^ {< CD1>}s中看到。在

相关问题 更多 >