eclipse中未定义的常量

时间:2011-09-13 10:08:56

标签: python eclipse aptana pydev

我正在使用eclipse / aptana进行python开发。 我的python路径配置没有问题,自动完成适用于所有内容,但是我遇到以下问题:

当我在其中一个班级中有一个“常数”且我尝试访问它时,eclipse会抱怨常量上的“来自导入的未定义变量”,例如

class Universe(object):
    ULTIMATE_ANSWER = 42

# in different module
# edit from: import Universe
from bigbang.models import Universe
print Universe.ULTIMATE_ANSWER

其中Universe.ULTIMATE_ANSWER触发警告。 此外,自动完成工作正常,所以当我键入Universe.x时,我确实得到了所有常量。

这不是一个紧急问题,但它往往会变得烦人,可能会让你忽略实际的错误。

关于如何使eclipse在这个上运行的任何想法? :)

编辑: 只有在另一个模块中导入类时才会发生这种情况。

编辑2: 如果上面不清楚,代码是有效的,这只是警告,不应该在那里...... 我已经尝试过将这个复制到我以外的项目中,包括eclipse和aptana中的pydev。

编辑3: 与下面的评论一样,这可能是pydev中的一个错误。提交并等待......

2 个答案:

答案 0 :(得分:1)

如果,(参见@Aix)你的意思是from mymodel import Universe

Universe.ULTIMATE_ANSWER后使用ctrl + 1;系统会要求您添加注释以忽略该错误。

您还可以将模型添加为强制内置,在运行时提示分析(您说过,没有错误)

答案 1 :(得分:0)

你没有import一个类,你导入一个模块。

如果您的模块被调用Universe(与您的班级一样),则变量的完全限定名称为Universe.Universe.ULTIMATE_ANSWER

如果你在模块的顶层定义了变量(即在你的类之外),那么它将被称为Universe.ULTIMATE_ANSWER

# Universe module
ULTIMATE_ANSWER = 42
class Universe(object):
    pass

# in different module
import Universe
print Universe.ULTIMATE_ANSWER