Python中Swig生成的常量

时间:2011-08-30 05:51:20

标签: python swig

我正在使用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中的菜鸟。

1 个答案:

答案 0 :(得分:1)

构建之后,您将获得一个python源文件:theCPPlibrary.py和一个pyd文件:_theCPPlibrary.pyd。您必须首先导入python模块:

import theCPPlibrary

CONST1由#define定义,可以通过以下方式访问:

print theCPPlibrary.CONST1

CONST2由const定义,不是全局变量,通过以下方式访问它:

print theCPPlibrary.cvar.CONST2