在python 中,字符串,元组,数字不可变;而列表,字典可变
接下来看3段代码:
a = 100
def test1(num):
num += num
print(num)
test1(a)
print(a)
执行结果为:
200
100
变量为数字的时候不可变的,在test1函数中发现num 不可修改,就在函数内部创建一个局部变量num ,不会修改全局变量 a ,所以num = 200, a = 100
a = [100]
def test2(num):
num += num
print(num)
test1(a)
print(a)
执行结果为:
[100, 100]
[100, 100]
在test2中,列表是可变的.a和num都指向同一个地址,在num 更改后,这块的内容也会更改,所以a也会改变
a = [100]
def test3(num):
num = num + num
print(num)
test1(a)
print(a)
执行结果为:
[100, 100]
[100]
在test3 中,num = num + num 中有'=',而'+='是复合运算符,num本来和a指向同一块地址,在num + num 后,num -> [100, 100],而a -> [100]