【发布时间】:2015-10-26 15:36:29
【问题描述】:
我正在尝试修改不同模块中的变量。修改器方法也在该模块中。显然上下文发生了变化,修改不会持续。
Test1.py
>from Test2 import *
function()
print var
Test2.py
>var = 0
def function():
global var
var = 1
如果我执行 Test1.py,即使函数已经执行,结果也始终为 0。
解决此问题的两种方法是:
- 调用函数后再次导入内容
- 将导入语句替换为“import Test2”,并将路径添加到对 Test2 的任何调用。
这些解决方案有效,但我想了解为什么会发生这种情况,为什么上下文在导入变量时不会混合它们。
【问题讨论】:
-
这不起作用,因为您在
Test1中创建了一个新引用var,该引用在Test2.var被反弹时不会更新。不要使用from module import *,而是使用import module,这样您就可以继续使用相同的引用。
标签: python variables import module