基础能力

python 中的可变与不可变变量

2018-05-10  本文已影响47人  闻人歌
 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]

上一篇下一篇

猜你喜欢

热点阅读