【问题标题】:<Swig Object of type 'Array< float > *<'Array< float > 类型的 Swig 对象 *
【发布时间】:2017-10-21 15:52:38
【问题描述】:

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

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

myArray = MySWIGModule.getObject().myArray

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

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

<Swig Object of type 'Array< float > *

但我想得到的是这样的:

<class 'MySWIGModule.FloatArray'>

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

【问题讨论】:

    标签: python c++ swig


    【解决方案1】:

    写

    %template(FloatArray) Array<float>
    

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

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

    【讨论】:

      猜你喜欢
      • 2012-09-09
      • 2016-02-15
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      相关资源
      最近更新 更多