美文网首页
python的不可变数据类型

python的不可变数据类型

作者: 溪小希 | 来源:发表于2018-12-22 12:49 被阅读0次

不可变数据类型分析, 先看一段程序

上面这段程序都是对不可变数据类型中的int类型的操作,id()查看的是当前变量的地址值。我们先来看x = 1和y = 1两个操作的结果,从上面的输出可以看到x和y在此时的地址值是一样的,也就是说x和y其实是引用了同一个对象,即1,也就是说内存中对于1只占用了一个地址,而不管有多少个引用指向了它,都只有一个地址值,只是有一个引用计数会记录指向这个地址的引用到底有几个而已。当我们进行x = 2赋值时,发现x的地址值变了,虽然还是x这个引用,但是其地址值却变化了,后面的y = 2以及z = y,使得x、y和z都引用了同一个对象,即2,所以地址值都是一样的。当x和y都被赋值2后,1这个对象已经没有引用指向它了,所以1这个对象占用的内存,即31106520地址要被“垃圾回收”,即1这个对象在内存中已经不存在了。

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

原文:https://blog.csdn.net/dan15188387481/article/details/49864613

相关文章

  • python中的变量

    1、python变量的“变”指向ID不可通过变量名修改其指向数据单元的内容。2、python数据类型不需要指定ty...

  • (一)python基础数据类型、函数、函数的高级特性

    一、python基础数据类型及循环 在Python中数据类型主要包括: 字符串、整数、浮点、None、变量、布尔变...

  • python的基本操作

    一、python的六个标准的数据类型 Python3 的六个标准数据类型中: 不可变数据(3 个):Number(...

  • 三、Python高级

    1 Python里的拷贝 1.1 顶层对象为不可变数据类型 1.1.1 子元素都为不可变数据类型 1.1.2 子元...

  • 2019-05-01派森学习第163天

    21、列出python中可变数据类型和不可变数据类型,并简述原理 不可变数据类型:数值型、字符串型string和元...

  • python字符串

    python的字符串有如下特性: 属于python基本数据类型和结构的一种。 本身是不可变的数据类型。 有很多内置...

  • python面试题(二)

    1、列出python中可变数据类型和不可变数据类型,并简述 不可变数据类型:数值型、字符串型string和元组tu...

  • 列表

    Python中的数据类型:数字(不可变)、字符串(不可变)、列表(可变)、元祖(不可变)、字典(可变)、集合 容器...

  • 2018年6月19日【python学习笔记】

    列表 python中的数据类型:数字(不可变)、字符串(不可变)、列表(可变)、元祖(不可变)、字典(可变)、集合...

  • python的可变和不可变数据类型

    不可变数据类型 python中不可变数据类型的定义为:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也...

网友评论

      本文标题:python的不可变数据类型

      本文链接:https://www.haomeiwen.com/subject/skhikqtx.html