python中的可变类型与不可变类型区别较大,另int类型较其他不可变类型还有细微不同
总的来说 python中可变类型有列表,字典,集合 不可变类型有字符串 数字 元组
对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(新开辟了一块内存地址),如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收。
不可变类型
以int型为例 实际上 i+=1并不是在原有的int对象上加1,而是重新创建一个value为6的对象,i这个引用指向这个新对象
i=5
i+=1
print(i)
---6
通过id函数查看变量i的内存地址进行验证
>>> i = 5
>>> i += 1
>>> i
6
>>> id(i)
140243713967984
>>> i += 1
>>> i
7
>>> id(i)
140243713967960
可以看到i的值发生变化 其内存地址就会变化 其实就是创建了一个新对象 i这个引用指向这个对象
看一下多个int类型的变量值相同时,看看他们的内存地址是否相同
>>> i = 5
>>> j = 5
>>