Python中的“可变”和“不可变”
“可变”:对象指向内存的值是可以改变的
可变类型:dict(字典),list(列表),set(集合)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200507195536416.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU1MzQ3Mw==,size_16,color_FFFFFF,t_70)
可以看到,使用list(列表)时,我们对列表进行操作前后,内存地址完全一样。这说明列表所指的内存地址的值是可以改变的。
“不可变”:对象指向内存的值是不能改变的
不可变类型:int,str,float,tuple(元组)
如图所示(使用int示范)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200507194549944.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU1MzQ3Mw==,size_16,color_FFFFFF,t_70)
变量a和变量b的值是一样的,在使用id()函数打印变量a和变量b的内存地址时,发现a和b的内存地址完全一样
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200507195012106.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU1MzQ3Mw==,size_16,color_FFFFFF,t_70)
当重新给变量a赋值时,会发现变量a的内存地址也发生了改变。