百科

python中的immutable和mutable 不可变与可变 应该怎么理解

Python的数据类型分为可变(mutable)与不可变(immutable)。不可变类型包含字符串(str),整数(int),元组(tuple);可变类型包含列表(list),字典(dict)。是否为可变类型在于内存单元的值是否可以被改变。

如果是内存单元的值不可改变的,在对对象本身操作的时候,必须在内存的另外地方再申请一块内存单元(因为老的内存单元不可变),老的内存单元就丢弃了(如果还有其他ref,则ref数字减1,类似unix下的hard-link);

如果是可变的,对对象操作的时候,不需要再在其他地方申请内存,只需要在此对象后面连续申请(+/-)即可,也就是它的地址会保持不变,但区域会变长或者变短。