为什么globals()不起作用

时间:2015-12-11 20:23:47

标签: python python-2.7 globals

我是python的新手,我想通过使用globals()来简单地更改变量但是由于某种原因我不断获得相同的outpu(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

1 个答案:

答案 0 :(得分:2)

您使用globals()函数来访问全局变量,但是您已将它们分配给函数内的局部变量,并且它不会更改全局变量。如果要更改全局变量,可以按功能将返回值重新分配给全局变量。

a01, a02, a03 = load_db(a01, a02, a03, cwp, aw_sg)
print a01, a02, a03
相关问题