为什么 globals() 不起作用
Why globals() doesn't work
我是 python 的新手,我想通过使用 globals() 简单地更改变量,但出于某种原因,我一直得到相同的输出(1、2、3 而不是 a、b、c)。这里有什么问题?
cwp = "01"
aw_sg = "01"
a01 = 1
a02 = 2
a03 = 3
p01g01a01 = "a"
p01g01a02 = "b"
p01g01a03 = "c"
print a01, a02, a03
def load_db(a01, a02, a03, cwp, aw_sg):
a01 = globals()["p%sg%sa01" % (cwp, aw_sg)]
a02 = globals()["p%sg%sa02" % (cwp, aw_sg)]
a03 = globals()["p%sg%sa03" % (cwp, aw_sg)]
return a01, a02, a03
load_db(a01, a02, a03, cwp, aw_sg)
print a01, a02, a03
您使用 globals()
函数访问全局变量,但您已将它们分配给函数内部的局部变量,并且不会更改全局变量。如果要更改全局变量,可以将函数返回的值重新分配给全局变量。
a01, a02, a03 = load_db(a01, a02, a03, cwp, aw_sg)
print a01, a02, a03
我是 python 的新手,我想通过使用 globals() 简单地更改变量,但出于某种原因,我一直得到相同的输出(1、2、3 而不是 a、b、c)。这里有什么问题?
cwp = "01"
aw_sg = "01"
a01 = 1
a02 = 2
a03 = 3
p01g01a01 = "a"
p01g01a02 = "b"
p01g01a03 = "c"
print a01, a02, a03
def load_db(a01, a02, a03, cwp, aw_sg):
a01 = globals()["p%sg%sa01" % (cwp, aw_sg)]
a02 = globals()["p%sg%sa02" % (cwp, aw_sg)]
a03 = globals()["p%sg%sa03" % (cwp, aw_sg)]
return a01, a02, a03
load_db(a01, a02, a03, cwp, aw_sg)
print a01, a02, a03
您使用 globals()
函数访问全局变量,但您已将它们分配给函数内部的局部变量,并且不会更改全局变量。如果要更改全局变量,可以将函数返回的值重新分配给全局变量。
a01, a02, a03 = load_db(a01, a02, a03, cwp, aw_sg)
print a01, a02, a03