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

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

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

===============>>#1 票数:2 已采纳

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

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

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

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

  ask by LiGhT_WoLF translate from so

未解决问题?本站智能推荐:

4回复

在Python 3中正确使用全局变量

在Python 3中正确使用全局变量是什么? 1)在核心脚本中(而不是在函数中)一次声明global VAR_NAME ,然后在其他任何地方简单地将变量称为VAR_NAME 2)在使用全局变量的每个函数中一次声明global VAR_NAME ,然后在其余函数中以及在核心脚本本身中简
2回复

Python 3中的全局变量声明

我试图了解全局变量如何影响。 以下面的代码为例 结果是: 这是戴夫 这是杰克 我需要了解如何打印“杰克在这里” 以下代码导致未定义i的错误。 我也不太明白。 请帮忙。
2回复

Python中的全局变量

我对Python很陌生。 尚未学习的课程。 使用Python 3.2.2。 尝试实现一些过程C逻辑。 我的代码分布在2个文件中,如下所示。 该文件称为date.py 该文件称为module1.py 我评论为“问题”的那行给我带来了问题。 当在声明module1
1回复

为什么python的全局变量不能在其他函数中使用?

我想使用while循环和线程从服务器连续接收字符串数据,然后我想使用从服务器接收到的字符串数据做些事情,所以我决定使用全局变量。 但是当我使用全局变量时,python表示未定义此变量。 我已经尝试解决此问题,但我仍然不知道为什么。 我希望你能帮助我。 感谢您的阅读。 结果:订
1回复

为什么我不能在Python的全局变量中使用max()函数?

我不断得到NameError:名称'max_col'未定义 。 经过一些研究,我意识到如果我想在函数中使用max_col作为全局变量,我必须以这种方式声明它。 然而,即使在修改之后,它似乎也无法工作。 在我的头撞了一个多小时之后,我把变量max_col放在一个数组中,然后将它放在exp
2回复

全局变量Python

此代码在A.remove(2)行中给出错误,并给出原因:“ UnboundLocalError:分配前引用了本地变量'A'” 但是列表是全局的,并且可以肯定已经在main()函数中对其进行了初始化。请解释为什么会给出错误? 由于已在b函数中再次初始化A,这会导致错误吗?
3回复

在Python中,我可以在定义时在方法中使用全局变量的值,但在更改该变量时不能更改它吗?

描述我需要的行为很困难,因此我举一个例子。 运行以下代码时, f()打印"eggs" ,但是我想让f()打印"spam" ,这是f声明时x的值。 这似乎不是很pythonic,但我已经对所面临的问题进行了很多思考,并得出结论认为该解决方案是最优雅的。 如果有必要,我可以提供有关需要此
2回复

无法将变量用作python中的全局变量[重复]

这个问题已经在这里有了答案: 在函数中使用全局变量 18个答案 我有一个通过Python连接的mqtt经纪人。 我想检查我是否能够连接到我的代理并在连接成功后触发邮件。 我打算使用已connected的全局变量,如果尝试连接后为false,则会触发警报。
3回复

Python中的全局变量和局部变量

我正在学习Python。 一本关于Python 3的书说以下代码应该可以正常工作: 但是当我在Python 3.3中运行它时,我得到了 错误。 我的理解是, funky的第一个print(myvar)应该是10,因为它是一个全局变量。 第二个print(myvar)应该是2
4回复

如何在python中的类中定义全局变量

我想在类外但不在文件外使用变量。 我在课堂外有一个条件,但我也必须在课堂上使用它。 我能做到吗? 这是可以尝试的示例。 我想删除输入部分并使用全局变量。 我尝试了这个但没有用。 它给出未定义的名称“询问”。 这是课程的外部。