【问题标题】:Swig-generated Constants in PythonPython 中 Swig 生成的常量
【发布时间】:2011-08-30 05:51:19
【问题描述】:

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

【问题讨论】:

    标签: python swig


    【解决方案1】:

    构建完成后,你会得到一个python源文件:theCPPlibrary.py,和一个pyd文件:_theCPPlibrary.pyd。你必须先导入python模块:

    import theCPPlibrary
    

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

    print theCPPlibrary.CONST1
    

    CONST2 由 const 定义,不是全局变量,访问方式:

    print theCPPlibrary.cvar.CONST2
    

    【讨论】:

    • 我没有在它前面加上库名。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    相关资源
    最近更新 更多