1. 程式人生 > >Python中的全域性變數和區域性變數

Python中的全域性變數和區域性變數

當局部變數和全域性變數名字一樣時,依然是不同的變數,但是值一樣時,地址依然一樣。值不一樣時,地址不一樣,修改區域性變數,全域性變數的值依然不變,例如:

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