python的不可变数据类型和可变数据类型的区别详解
程序员文章站
2022-06-26 18:18:22
不可变数据类型和可变数据类型的区别不可变数据类型不可变数据类型immutable:一般为基本数据类型,仅存储一个数值的数据类型,元组例外,如 int、long、float、string、元组,当创建一个变量时,变量内存储了指向值的地址,该地址处的值不会发生改变,当对变量重新赋值时,实际上是变量内的地址发生了改变。例如创建a = 1,a内存储的地址指向1,令b = a,b中存储和a相同的地址。当重新赋值a = 0,a内存储的地址发生变化指向0,而b的地址不变所以值依然为1:可变数据类型可变...
不可变数据类型和可变数据类型的区别
不可变数据类型
- 不可变数据类型immutable:一般为基本数据类型,仅存储一个数值的数据类型,元组例外,如 int、long、float、string、元组,当创建一个变量时,变量内存储了指向值的地址,该地址处的值不会发生改变,当对变量重新赋值时,实际上是变量内的地址发生了改变。
例如创建a = 1
,a内存储的地址指向1,令b = a
,b中存储和a相同的地址。
当重新赋值a = 0
,a内存储的地址发生变化指向0,而b的地址不变所以值依然为1:
可变数据类型
- 可变数据类型mutable:一般为结构数据类型,如 字典、列表、集合,创建一个变量后,变量保存了指向值的地址,允许对该地址处的值进行修改,注意的是修改操作需要用变量自带的方法,重新赋值操作依然为改变地址。
例如创建a = [1,2]
,a内存储的地址指向[1,2],令b = a
,b中存储和a相同的地址。
当对值[1,2]进行修改时,如a[0] = 3
,此时a存储的地址没有发生改变,因此a、b同时变为[3,2]
如果对变量进行重赋值操作,就不是对原有的值进行修改了,而是创建新的对象,变量中存储的地址会发生改变,例如对a=[1,2]中的1修改为3的操作,变为重赋值a = [3,2]
,那么就和不可变数据类型的赋值操作相同了,b和a不再相同。
本文地址:https://blog.csdn.net/qq_43474959/article/details/109616928
上一篇: 《Unity引擎中的Shader类和ShaderLab语言》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Unity+Shader+ShaderLab+立钻哥哥++OK+)
下一篇: 解析:虚拟化软件市场现状
推荐阅读
-
Python中内置数据类型list,tuple,dict,set的区别和用法
-
python中的不可变数据类型与可变数据类型详解
-
Python中内置数据类型list,tuple,dict,set的区别和用法
-
对pandas中两种数据类型Series和DataFrame的区别详解
-
python的不可变数据类型和可变数据类型的区别详解
-
Python基本数据类型和对应的内置方法详解
-
python数据类型bytes 和 bytearray的使用与区别
-
Python中内置数据类型list,tuple,dict,set的区别和用法
-
Python中内置数据类型list,tuple,dict,set的区别和用法
-
JavaScript 基本数据类型和引用类型的区别详解