在python 中,字符串,元組,數(shù)字不可變;而列表,字典可變
接下來看3段代碼:
a = 100
def test1(num):
num += num
print(num)
test1(a)
print(a)
執(zhí)行結果為:
200
100
變量為數(shù)字的時候不可變的,在test1函數(shù)中發(fā)現(xiàn)num 不可修改,就在函數(shù)內(nèi)部創(chuàng)建一個局部變量num ,不會修改全局變量 a ,所以num = 200, a = 100
a = [100]
def test2(num):
num += num
print(num)
test1(a)
print(a)
執(zhí)行結果為:
[100, 100]
[100, 100]
在test2中,列表是可變的.a和num都指向同一個地址,在num 更改后,這塊的內(nèi)容也會更改,所以a也會改變
a = [100]
def test3(num):
num = num + num
print(num)
test1(a)
print(a)
執(zhí)行結果為:
[100, 100]
[100]
在test3 中,num = num + num 中有'=',而'+='是復合運算符,num本來和a指向同一塊地址,在num + num 后,num -> [100, 100],而a -> [100]