更新模型,顾名思义就是对象在创建成功后,其值是否能够更新
python的更新模型如下:
可变类型 列表, 字典
不可变类型 数字、字符串、元组
看到这里,会很奇怪,列表字典很容易明白,是可变的,数值和字符串对象是不可改变的就让人很困惑。
x = 'Python numbers and strings'
x = 'are immutable?!? What gives?'
i = 1
i = i + 1
表面上看,x值改变了,其实是创建一个和以前对象有着相同名字的新对象,看下面
>>> x = 1
>>> id(x)
31043200
>>> x = 2
>>> id(x)
31043188
此时旧对象的引用被抛弃,如果引用计数为0则垃圾回收器会在合适的时机回收这些对象