为什么 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