Python可变类型 Vs 不可变类型

Posted Lina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python可变类型 Vs 不可变类型相关的知识,希望对你有一定的参考价值。

可变类型 Vs 不可变类型(这里的可变不可变,是指内存中的那块内容(value)是否可以被改变。)

  • 可变类型(mutable):列表,字典
  • 不可变类型(unmutable):数字,字符串,元组
  • 如果是不可变类型,在对对象本身操作的时候,必须在内存中新申请一块区域(因为老区域#不可变#)。不允许变量的值发生变化,如果改变了变量的值,相当于新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量来引用这个对象,当引用计算变为0的时候,就启用垃圾回收机制,原来的地址就不再存在。
  • 如果是可变类型,对对象操作的时候,不需要再在其他地方申请内存,即地址不会发生变化,值可以变化。对于相同的值不同的对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多少份,这里不存在引用计数,是实实在在的对象。
  • 可以使用内建函数id()来确认对象的身份在两次赋值前后是否发生了变化。

以上是关于Python可变类型 Vs 不可变类型的主要内容,如果未能解决你的问题,请参考以下文章

python可变和不可变类型

Python的可变类型与不可变类型

python可变类型和不可变类型

python —— 可变与不可变类型

Python的可变和不可变类型

python 可变类型和不可变类型