Cython 中的 C++ 指针

Posted

技术标签:

【中文标题】Cython 中的 C++ 指针【英文标题】:C++ pointers in Cython 【发布时间】:2016-09-01 05:16:09 【问题描述】:

我使用 Cython 来包装我的 C++ 类。一些方法返回某事。喜欢class_name*class_name 可能是一些已经在 pxd 和 pyx 文件中描述的复杂类(就像在扩展答案 https://***.com/a/39116733/4881441 中提到的一样)。但是 Cython 在 pyx defs 中说我返回的不是 Python 类型。我希望能够在 python 中返回类似 c++ 的指针,然后使用这些对象的方法并将它们传递给 c++ 方法。

【问题讨论】:

How to return new C++ objects in Cython?的可能重复 【参考方案1】:

您不能直接从def 方法返回指针(只能从cdef)。

您需要编写一个 Cython Wrapper 类来存储您要传递的指针,并且您可以返回此 Wrapper 对象。 如果您想在 C++ 对象上执行方法,您还必须使用 Cython Wrapper 并将方法调用委托给存储的实例。

【讨论】:

以上是关于Cython 中的 C++ 指针的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cython 包装 C++ 类时处理指针

在 Cython 中包装自定义类型 C++ 指针

Cython 中的这个声明是啥? cdef PyObject **工人。它是指向指针的指针吗?

在 cython 中返回 c++ 对象(最好不是指针)

cython:C++ 方法声明中的 const 和 except

如何从另一个包装的对象返回 Cython 中的包装 C++ 对象?