2011-08-30 59 views
0

我正在使用SWIG爲我的C++類庫創建一個Python接口。Python中Swig生成的常量

我不能解決如何利用Python中的SWIG創建的常量。我甚至無法打印他們的價值。

例如,在Python這兩個打印語句失敗默默...

print CONST1 
print rep (CONST1) 

C++,我有這個

#define CONST1 0x20000 
const int CONST2 = 0x20000; // No different to #define in SWIG-generated code. 

如果我把創建的Python模塊由SWIG它有這樣的東西...

CONST1 = _theCPPlibrary.CONST1 

此外,我嘗試使用SWIG%常量指令作爲一個實驗(如果我可以避免它,我真的不想使用它,因爲它涉及在SWIG輸入文件中複製我的常量)。 %常量指令也給出了相同的結果。

我是C++程序員,也是Python中的noob。

回答

1

構建完成後,您將獲得一個python源文件:theCPPlibrary.py和一個pyd文件:_theCPPlibrary.pyd。你必須先導入Python模塊:

import theCPPlibrary 

CONST1被定義的#define,它可以通過訪問:

print theCPPlibrary.CONST1 

CONST2由常量定義,豈不等於一個全局變量,它的訪問通過:

print theCPPlibrary.cvar.CONST2 
+0

我沒有用庫名前綴。謝謝! – bluedog