Python中的全域性變數和區域性變數
阿新 • • 發佈:2018-12-13
當局部變數和全域性變數名字一樣時,依然是不同的變數,但是值一樣時,地址依然一樣。值不一樣時,地址不一樣,修改區域性變數,全域性變數的值依然不變,例如:
num = 100
def test():
num = 99
print("區域性變數num的值:%d,地址為:%d" % (num, id(num)))
test()
print("全域性變數num的值:%d,地址為:%d" % (num, id(num)))
輸出: 區域性變數num的值:99,地址為:492861520 全域性變數num的值:100,地址為:492861552
Python中,當全域性變數和區域性變數的名字一樣時,函式內會優先使用區域性變數的值,函式內也沒辦法直接修改全域性變數的值。如果要在區域性變數中修改全域性變數的值時,修改成如下程式碼:
num = 100
def test():
global num
num = 99
print("區域性變數num的值:%d,地址為:%d" % (num, id(num)))
test()
print("全域性變數num的值:%d,地址為:%d" % (num, id(num)))
輸出: 區域性變數num的值:99,地址為:492861520 全域性變數num的值:99,地址為:492861520