尝试访问全局变量时出现问题

时间:2010-10-19 17:11:13

标签: python global-variables scope

我知道在类中定义全局变量时如何使用它们,但是我在主变量中有一个全局变量。
如果我想在一个类中使用它,那将是导入它吗?

我的主要是这样的

Main.py:

from EvolutionaryAlgorithm import EvolutionaryAlgorithm
initialTimeMain = 0

if __name__ == '__main__':
    evolutionaryAlgorithm= EvolutionaryAlgorithm()
.
.

我的EvolutionaryAlgorithm类有一个使用initialTimeMain变量的方法。 问题是当我在EvolutionaryAlgorithm中添加这个导入时:

EvolutionaryAlgorithm.py

import Main 

因为当我运行脚本时,会出现错误

  来自EvolutionaryAlgorithm的

导入   EvolutionaryAlgorithm ImportError:   无法导入名称   EvolutionaryAlgorithm

不再识别导入

1 个答案:

答案 0 :(得分:3)

你有一个循环导入的情况,短期解决方案是在if子句中移动import语句:

initialTimeMain = 0

if __name__ == '__main__':
    from EvolutionaryAlgorithm import EvolutionaryAlgorithm
    evolutionaryAlgorithm= EvolutionaryAlgorithm()

更好的长期解决方案是重构您的代码,以便您没有循环导入或initialTimeMain中定义了EvolutionaryAlgorithm.py,这当然可以在{{{}}中找到1}}使用您现有的导入策略。

旧答案:

Main.py