<swig object =“”of =“”type =“”'array <=“”float =“”> *

时间:2017-10-21 15:52:39

标签: python c++ swig

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

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

myArray = MySWIGModule.getObject().myArray

其中方法“ getObject()”返回一个类“Object”,其中包含( Array&lt; float&gt; 类型的属性“myArray”(除此之外) ”

当我想要打印 myArray 的内容或类型时,我明白这一点:

<Swig Object of type 'Array< float > *

但我想获得的是:

<class 'MySWIGModule.FloatArray'>

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

1 个答案:

答案 0 :(得分:0)

%template(FloatArray) Array<float>

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

另外,要注意生命周期问题:当Python的对它的引用被删除时,很容易得到一个指向对象部分的指针。