2012-01-21 23 views
0

我使用C++和swig來做一些計算。爲了簡化計算,讓我們假設它看起來像這樣:如何在Python中取消引用swig float引用?

​​

現在我想使用的功能getIt()和打印的浮點值。

隨着

testee = matching.TestIt(42) 
print(testee.getIt()) 

我得到

<Swig Object of type 'float *' at 0x1cb1690> 

這是有道理的,因爲GETIT返回一個參考。我如何解引用它/獲取一個Python浮點數(不更改C++代碼)?

回答

1

看一看herehere。你會寫這樣的事情你痛飲模塊:

%pointer_class(float, floatp) 

,可以讓你在你的Python代碼做到這一點:

print(testee.getIt().value()) 

你需要改變你痛飲模塊,或者寫一個,如果您直接切換C++頭文件。但是你可能會從這裏簡單地包含你的C++頭文件。

+0

當前swig verson(2.0)的[cointer.i](http://www.swig.org/Doc2.0/Library.html#Library_nn4) – thorink