码迷,mamicode.com
首页 > 编程语言 > 详细

Python可变类型 Vs 不可变类型

时间:2018-05-11 15:38:20      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:启用   多少   赋值   类型   新建   内建函数   字典   列表   数字   

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

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

Python可变类型 Vs 不可变类型

标签:启用   多少   赋值   类型   新建   内建函数   字典   列表   数字   

原文地址:https://www.cnblogs.com/Lina-zhu/p/9024636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!