首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pythoncode块中使用模块定义的常量

在pythoncode块中使用模块定义的常量
EN

Stack Overflow用户
提问于 2015-07-10 18:26:10
回答 2查看 111关注 0票数 1

我的C代码定义了一个常量,我试图添加使用这个常量的python代码(在pythoncode块中),因为某种原因这是行不通的。

演示.i文件:

代码语言:javascript
复制
%module test
%{
// c code defines a static constant
static const int i=3;
%}

// declare the constant so that it shows up in the python module
static const int i;

%pythoncode %{
# try to use the constant in some python code
lookup={'i':i,}
%}

以下是错误:

代码语言:javascript
复制
[dave]$ python -c "import test"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "test.py", line 70, in <module>
    lookup={'i':i,}
NameError: name 'i' is not defined

如果我在lookup块中注释掉了pythoncode字典,那么一切都很好:

代码语言:javascript
复制
[dave]$ python -c "import test; print test.i"
3

所以,至少当我导入模块时,常量就会出现。

我如何在pythoncode块中“看到”C定义的常量?

大口2.0.4,python 2.7。

EN

Stack Overflow用户

发布于 2015-07-10 19:36:36

另一个解决方法是将引用变量的时间推迟到模块完成加载之后,方法是使用一个函数:

代码语言:javascript
复制
%pythoncode %{
def lookup( key ){
     mp={'i':i}
     return mp[key]
%} 
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31347788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档