Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python 3中使用全局变量_Python_Python 3.x - Fatal编程技术网

在python 3中使用全局变量

在python 3中使用全局变量,python,python-3.x,Python,Python 3.x,如何在模块的任何位置使用和编辑全局变量?我的项目看起来像 project/ ---- models/ ---- ---- first.py ---- ---- second.py ---- run.py Run.py是main,我使用它ti start app,其中包含global vars init。您必须将它们导入到您想要在其中使用它们的任何其他模块中。全局变量仅对它们所在的文件是全局的(除非在其他地方导入) 请注意,如果希望将更改传播到导入的模块之外,则需要执行以下两项操作之一: 使用

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

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

Run.py是main,我使用它ti start app,其中包含global vars init。

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

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

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

原因是,如果使用来自导入的
,它将创建一个本地版本的变量,该变量独立于来自其他模块的变量,但具有相同的值。对于可变类型,此值是一个引用,因此只要您在适当的位置修改对象,更改将随处可见(因为所有引用都指向同一个对象)。

当我首先导入run.var并编辑它时,第二次导入时,没有结果是
run.var
的类型?你如何导入它?(您使用的是
import run.var
还是
from run import var
?)如果您使用的是
from。。。导入…
,尝试切换到
import run.var
,然后从run import var
var=”“
切换到
run.var=…
,这是您的问题,然后-当您从run import var使用
时,您只需要在名为
var
的新局部变量中获取值的副本-如果希望更改在所有实例中传播,您需要导入并使用原始版本(
import run.var
)或使用引用类型(如字典或列表)只需修改该项而不覆盖它。