A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、不可变对象,又称不可变类型,不可修改对象,反正名字好多,你知道是一回事,这是最起码的,我已经醉了

2、基本概念,生硬不生硬啊

什么是可变/不可变对象
不可变对象,该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再去改变,这会开辟一个新的内存地址,变量再指向这个新的地址
可变对象,该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的内存地址,通俗点说就是原地改变。

3、Python中的不可变对象与可变对象举例

a、数值类型(int和float)、字符串str、元组tuple都是不可变对象

b、而列表list、字典dict、集合set是可变对象

4、因为有对象id的存在,所以我们可以利用它进行判断,如果一个变量被改变后,它的id值与原来对象的id值是不同的,则证明这个对象就是一个不可变对象,因为又新建了一个对象

5、不可变对象与可变对象的一个重要区别就是

a、当你去改变一个对象的时候,都会新建一个对象,那证明就是一个不可变对象

b、当你去改变一个对象的时候,没有新建对象,而是改变了原来的对象,那证明就是一个可变对象

不可变对象,必须要单独拉出来总结

参考文章:https://www.cnblogs.com/sun-haiyu/p/7096918.html

https://www.cnblogs.com/harvyxu/p/8537368.html

https://www.jianshu.com/p/b3157c9751d0


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马