变量和可变量(稍微深入)"/>
python 不可变量和可变量(稍微深入)
@ 摘要:
Python的数据类型涉及到2个大原则 即 可变和不可变,是否可变显然说的变量代表的内存空间里的值。
本文简要概述python3的 (python2版本好像更奇葩) 并且和Java的相关内容进行类比。
以源码为依据,从时间和空间出发猜测为什么会这么做。
@ 作者:
@ 声明:不保证正确:) 转载无需注明 就说是你写的。
>>作者:
Python的不可变量
>字符
>数值
>元组
[不可变量的描述]
引用->对象:
- 对于不可变量如果需要创建的对象的内容(value值)相同,则引用都指向同一个对象,不创建新的内存空间。
- 理论上因为定义了值是不可变的。所以如果大家都一样的值,那就指向同一份内存空间好了。显然这么节省内存,避免冗余。
- 但是实现的时候显然考虑到记录和维护这些变量。那么每次赋值的时候还涉及到一个查找是不是已经存在,引起了时间和空间的矛盾。实际上python实现的时候可是因地制宜的,会有很多的细节琐碎处。
#[demo1 数值(int float)]a = 10 #数值 但是是int 10
b = 10 #数值 但是是int 10
c = 10. #数值 但是是float 10.print(a is b) #True 说明内存是相同的空间 这就是不可变导致的a和b数值相同,那么a,b指向同一个内存空间。
print(a == b)
更多推荐
python 不可变量和可变量(稍微深入)
发布评论