在python 3中使用全局变量

时间:2013-04-16 16:17:43

标签: python python-3.x

如何在模块的任何位置使用和编辑全局变量?我的项目看起来像

project/
---- models/
---- ---- first.py
---- ---- second.py
---- run.py

Run.py是主要的,我使用它启动app,全局变量初始化。

1 个答案:

答案 0 :(得分:2)

你必须import将它们放入你想要使用它们的任何其他模块中。全局变量只对它们所在的文件是全局的(除非在别处导入)。

请注意,如果您希望更改在导入的模块之外传播,则需要执行以下两项操作之一:

  • 使用非from导入语法(例如import foo.bar然后foo.bar = <value>
  • 使用可变类型并就地修改(例如字典)

这样做的原因是,如果您使用from导入,它会创建一个本地版本的变量,该变量独立于另一个模块的变量,但具有相同的值。对于可变类型,此值是引用,因此只要您就地修改对象,更改将在任何位置都可见(因为所有引用都将指向同一对象)。