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