1

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

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

Run.py 是主要的,我在其中使用它来启动应用程序,全局变量 init。

4

1 回答 1

2

您必须将import它们放入要在其中使用它们的任何其他模块中。全局变量仅对它们所在的文件是全局的(除非在其他地方导入)。

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

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

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

于 2013-04-16T16:18:57.697 回答