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 中的这个声明是啥? cdef PyObject **工人。它是指向指针的指针吗?