我正在使用SWIG为我的C ++类库创建一个Python接口。
我无法弄清楚如何利用SWIG在Python中创建的常量。我甚至无法打印它们的价值。
例如,Python中的这两个print语句都无声地失败......
print CONST1
print rep (CONST1)
在 C ++ 中,我有这个
#define CONST1 0x20000
const int CONST2 = 0x20000; // No different to #define in SWIG-generated code.
如果我查看SWIG创建的 Python模块,它就会有这样的内容......
CONST1 = _theCPPlibrary.CONST1
此外,我尝试使用SWIG%常量指令作为实验(如果我可以避免使用它,我真的不想使用它,因为它涉及在SWIG输入文件中复制我的常量)。 %constant指令也给出了相同的结果。
我是C ++程序员,也是Python中的菜鸟。
答案 0 :(得分:1)
构建之后,您将获得一个python源文件:theCPPlibrary.py和一个pyd文件:_theCPPlibrary.pyd。您必须首先导入python模块:
import theCPPlibrary
CONST1由#define定义,可以通过以下方式访问:
print theCPPlibrary.CONST1
CONST2由const定义,不是全局变量,通过以下方式访问它:
print theCPPlibrary.cvar.CONST2