python - <Array<float> 类型的 Swig 对象 *

标签 python c++ swig

我正在使用 SWIG 包装一段 C++ 代码,以便在 Python 中使用它。

假设我在 C++ 中有一个“Array< T >”用户定义类,我想从 Python 计算这行代码:

myArray = MySWIGModule.getObject().myArray

方法“getObject()”返回一个类“Object”,其中包含(除其他外)“Array”类型的属性“myArray” .

当我想打印myArray 的内容或类型时,我得到这个:

<Swig Object of type 'Array< float > *

但是我想得到的是这样的:

<class 'MySWIGModule.FloatArray'>

我尝试了许多不同的解决方案,但都没有成功。你知道如何达到这个结果吗?谢谢!

最佳答案

%template(FloatArray) Array<float>

拥有 SWIG use that name in the interface .在启用包装器类的情况下,这应该是完美的;但是,如果它实际上是一个指针,SWIG 可能仍会使用模板名称。

另外,请注意生命周期问题:当 Python 引用被删除时,很容易获得指向对象部分的指针,该部分对象将被销毁。

关于python - <Array<float> 类型的 Swig 对象 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46865052/

相关文章:

python - 对于 : not returning all lines 中的行

python - 为什么我从 GUI Python 教科书中获取的这段代码有效?

python - 关于程序的时间复杂度

python - pySerial 在运行时中断什么引脚?

c++ - 如何处理*.IDL 文件中的循环依赖?

python - Windows中的Simstring(python)安装

java - 将 SWIG 与 C++ 的 std::map 一起使用时,Java 没有迭代器

c++ - 检查网格/真值表的对称性

c++ - 将整数连接到字符串

java - SWIG (Java) : How do I pass a struct with callback functions to C++ from an Android application?