0
我是新来的python,我想简单地通过使用globals()更改变量,但出于某种原因我不断得到相同的输出(1,2,3而不是a,b,c) 。这里有什么问题?为什么globals()不工作
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
你不实际存储load_db'的'返回值的任意位置,因为你还没有打上A01,A02,A03和作为'global'内'load_db',全球范围的A01 /等不被覆盖。 (我假设你是纯粹由于学术原因而要求这个问题,并且实际上并没有像这样使用'globals()') – senshin
你正在为''a01','a02'和'a03'内部的' load_db'。这并不会改变全局变量。使用返回值,例如'print load_db(a01,a02,a03,cwp,aw_sg)'。使用真正的变量名也是一个好主意,不使用'globals()'是一个更好的主意。 – Ryan
@ senshin yup我用这个例子来理解它是如何工作的 – JeremyK