暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python:3、可变数据类型和不可变数据类型

Chris的算法小记 2021-08-15
534
Chris的算法小记

关注我的公众号《Chris的算法小记》,点击右侧下方《Python》进入Python专栏,视频的文档我都会放在这里,大家可结合文档进行学习。

一、不可变数据类型

不可变数据类型
  • 优点:内存中不管有多少个引用,相同的对象只占用了一块内存;
  • 缺点:当需要对变量进行计算从而改变变量引用的对象的值时,由于是不可变的数据类型,所以必须创建新的对象,这样就会使得一次次的改变创建了一个个新的对象,不过不再使用的内存会被垃圾回收器回收。

二、可变数据类型

可变数据类型
  • 可变数据类型是允许同一对象的内容,即值可以变化,但是地址是不会变化的。

  • 注意:对可变数据类型的操作不能是直接进行新的赋值操作,比如说a = [1, 2, 3, 4, 5, 6, 7],这样的操作就不是改变值了,而是新建了一个新的对象,这里的可变只是对于类似于append、+=等这种操作。

三、总结

  • 不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;

  • 可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化。不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。


如果觉得文章不错,希望大家可以扫描上方名片关注我的微信公众号噢,点赞、收藏、在看、分享就再好不过了。如果有任何建议和问题,可以在下方给我留言,我会及时回复的,同时会不定期更新更多的文章,祝我们终将自由。


文章转载自Chris的算法小记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论