2017-10-21 7 views
1

私はのPythonからそれを使用するC++コードの一部をラップするSWIGを使用しています。<ガブガブ飲むオブジェクトの配列< float > *

のは、私はC++で「アレイ< T>」ユーザー定義クラスを持っていると私は、Pythonからのコード行を計算したいとしましょう:

myArray = MySWIGModule.getObject().myArray 

方法」のgetObject() "は、" の配列< float> "の属性" myArray "を含むクラス" Object "を返します。

私はmyarrayのの内容や種類を印刷したい場合は、私はこの取得:

<Swig Object of type 'Array<float> * 

をしかし、私は取得したいことのようなものです:私が試した

<class 'MySWIGModule.FloatArray'> 

多くの異なるソリューションが成功することはありません。あなたはこの結果を達成する方法を知っていますか?ありがとう!

%template(FloatArray) Array<float> 

答えて

0

書き込みはSWIG use that name in the interfaceを持っています。これは、ラッパークラスを有効にして完璧にする必要があります。しかし、実際にポインタの場合、SWIGはまだテンプレート名を使用している可能性があります。

また、生涯の問題に注意してください。オブジェクトの一部へのポインタを取得するのは簡単です。そのオブジェクトへのPythonリファレンスが破棄されると、破棄されます。

関連する問題