我有文件说test1.py
并且它有变量var1 = ''
,并且在test1.py
中的一个方法中我将var1
的值更新为
global var1
var1 = 'new_value'
我可以通过test1.py
中的其他方法打印来更新值。
现在我有另一个文件test2.py
我将var1称为var_new = test1.var1
但是当我打印它时,我仍然会得到''。
我认为在套件开始时它正在初始化所有模块。但是当我在test2.py中调用方法时,它在初始化时获得了价值?我怎样才能获得更新价值?
因此var_new
打印''
如果我使用get_var()
方法,那么我会获得更新值。所以我想我总是创建这个方法吗?
答案 0 :(得分:1)
我想我终于明白了这个问题,根据你的描述,你有类似的东西
test1.py
var1=""
def foo():
global var1
var1="new_valor"
def bar():
print(var1)
test2.py
import test1
var_new=test1.var1
print(var_new)
如果是这种情况,是的,你得到一个空字符串,因为你没有调用foo
来修改var1,所以你必须先调用它或者从test2修改,因为foo
没有被调用在加载时,所以var1保持其首次分配的值。
答案 1 :(得分:0)
通过这样做:
var1 = test1.var1
将test1.var1字符串的内容复制到var1中。但如果以后修改test1.var1,则var1不会。
>>> var1="test"
>>> var2=var1
>>> var2+= "a"
>>> var2
'testa'
>>> var1
'test'
因此,如果你想获得test1.var1的值,你应该总是访问它test1.var1
。