如何在Python中的不同模块之间使用全局变量

时间:2010-02-19 13:28:52

标签: python scope global-variables

我调查了python中全局变量的范围仅限于模块。但我需要范围在不同模块之间是全局的。有这样的事吗?我玩__builtin__但没有运气。

提前感谢!

3 个答案:

答案 0 :(得分:6)

您可以通过显式导入来从其他模块访问全局变量。

在模块foo中:

  joe = 5

在模块bar中:

  from foo import joe
  print joe

请注意,不建议这样做。使用函数隐藏对模块变量的访问要好得多。

答案 1 :(得分:3)

Python不支持在几个模块之间共享的全局变量:这是一个功能。隐式修改远程使用的变量的代码令人困惑且无法维护。 真正的解决方案是将所有状态封装在一个类中,并将其实例传递给任何必须修改它的实例。这可以使代码更清晰,更易于维护,更可测试,更模块化,更易于使用。

答案 2 :(得分:0)

本地之外的范围必须通过对范围的引用,或在globalnonlocal(3.x +)指令之后写入。