Python中的SWIG生成常量
我正在使用SWIG来为我的C++类库创建一个Python接口。
我不知道怎么在Python中使用SWIG创建的常量。我甚至无法打印出它们的值。
比如,这两条Python的打印语句都没有任何反应...
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的%constant指令来做实验(如果可以避免的话,我其实不想使用这个,因为它需要在SWIG输入文件中重复我的常量)。%constant指令的结果也是一样的。
我是一名C++程序员,对Python还是个新手。
1 个回答
1
构建完成后,你会得到一个Python源文件:theCPPlibrary.py,还有一个pyd文件:_theCPPlibrary.pyd。你必须先导入这个Python模块:
import theCPPlibrary
CONST1是通过#define定义的,可以这样访问:
print theCPPlibrary.CONST1
CONST2是通过const定义的,它不是全局变量,可以这样访问:
print theCPPlibrary.cvar.CONST2