如何从不同的方法正确调用python全局变量?

如何从不同的方法正确调用python全局变量?,python,eclipse,global,pydev,Python,Eclipse,Global,Pydev,我试图从不同的文件中设置和获取全局变量 ##config.py def init(): global CELL_NUM_INROWS CELL_NUM_INROWS = 10 ##main.py if __name__ == '__main__': config.init() ######some codes here g = Game(diff, dim, path) g.start() class Game: def __init

我试图从不同的文件中设置和获取全局变量

##config.py
def init():
    global CELL_NUM_INROWS
    CELL_NUM_INROWS = 10

##main.py
if __name__ == '__main__': 
    config.init()
    ######some codes here
    g = Game(diff, dim, path)
    g.start()

class Game:
    def __init__(self, diff, dim, path):
        config.CELL_NUM_INROWS = 20  ##eclipse putting red underline and saying undefined variable.
我的代码正在运行,但我只是想知道这里的问题是什么?如果我在main中修改变量,它不会显示任何红色下划线。
谢谢

是否在根目录中也定义了CELL_NUM_INROWS?i、 通常在init之前的某个地方有类似CELL_NUM_INROWS=None的东西。你没有表现出来,但也许你已经有了。否则,它在运行init之前不存在,因此静态分析不会看到它。是否需要显式初始化配置,而不是在第一次导入时通过在模块作用域中解析来隐式初始化配置?就目前而言,这似乎有点过于复杂。如果您确实需要显式初始化它,那么最好创建一个配置对象,而不是尝试将模块用作伪类。你是说config.py中init之前的CELL_NUM_INROWS=None@Corley BrigmanAs站着,你可以忽略红色下划线;这是使用动态语言(如Python)的静态分析工具的失败。在调用config.init之后的运行时之前,config.CEL_NUM_INROWS不存在。也就是说,如果我刚才所说的对您来说没有完全意义,和/或您无法证明它是正确的,您应该将静态分析结果视为代码中可能存在潜在设计缺陷的迹象。@Silas Ray我想设置,更改并从不同的python文件中获取全局变量,因此我使用与此类似的全局变量:。您能不能更详细地介绍一下如何通过配置对象来更改全局变量并获取特性