1 什么是可变对象,什么是不可变对象:
可变对象是指,一个对象在不改变其所指向的地址的前提下,可以修改其所指向的地址中的值;
不可变对象是指,一个对象所指向的地址上值是不能修改的,如果你修改了这个对象的值,那么它指向的地址就改变了,相当于你把这个对象指向的值复制出来一份,然后做了修改后存到另一个地址上了,但是可变对象就不会做这样的动作,而是直接在对象所指的地址上把值给改变了,而这个对象依然指向这个地址。数字,字符串,元组
2 深拷贝和浅拷贝需要注意的地方就是可变元素的拷贝:
首先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样,也就是地址的复制还是值的复制的区别。
深拷贝就是完全跟以前就没有任何关系了,原来的对象怎么改都不会影响当前对象
浅拷贝,要看对象是否可变(list 可变,int,float,complex,long,str,unicode,tuple 不可变),对于不可变对象,浅拷贝与深拷贝作用一样,源对象与当前对象没关系了;对于可变对象,原对象的list元素改变的话会改变当前对象,如果当前对象中list元素改变了,也同样会影响原对象。
在浅拷贝时,拷贝出来的新对象的地