我如何在模块的任何位置使用和编辑全局变量?我的项目看起来像
project/
---- models/
---- ---- first.py
---- ---- second.py
---- run.py
Run.py是主要的,我在启动应用程序时使用它,全局vars在其中启动。
最佳答案
您必须将它们import
放入要在其中使用它们的任何其他模块。全局变量仅对于它们所在的文件是全局的(除非在其他位置导入)。
请注意,如果要将更改传播到导入的模块之外,则需要执行以下两项操作之一:
使用非from
导入语法(例如import foo.bar
然后foo.bar = <value>
)
使用可变类型并就地对其进行修改(例如字典)
这样做的原因是,如果使用from
导入,它将创建变量的本地版本,该版本独立于另一个模块,但具有相同的值。对于可变类型,此值是一个引用,因此,只要您就地修改对象,所做的更改将随处可见(因为所有引用都指向同一个对象)。