拷贝顾名思义就是复制,但是它并不简单哦,拷贝分为深浅拷贝,那么啥是深拷贝啥是浅拷贝呢,让我们来举个栗子,浅拷贝就是当你拷贝别人的U盘里东西时,却没有新建文件存放在自己的电脑里,直接在里面修改,那么我们就更改了U盘里的内容,深拷贝就是在自己的电脑里新建了文件进行修改,而不会影响到原来的内容。好像栗子不是那么好吃,那我们来看看下面的解释吧!!!
**
深浅拷贝
**
使用内置函数:copy(浅拷贝)、deepcopy(深拷贝)。
拷贝:新开辟一段空间用来存储新的对象。而深浅拷贝的区别在于:
浅拷贝: 不拷贝子对象的内容,只是拷贝子对象的引用。
深拷贝:会连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象
1.深拷贝和浅拷贝只针对像Object, Array这样的引用类型数据。
2.浅拷贝是对对象引用地址进行拷贝,并没有开辟新的栈,也就是拷贝后的结果是两个对象指向同一个引用地址,修改其中一个对象的属性,则另一个对象的属性也会改变。
3.深拷贝则是开启一个新的栈,两个对象对应两个不同的引用地址,修改一个对象的属性,不会改变另一个对象的属性。
import copy #浅拷贝拷贝的是地址
print("-------------浅拷贝----------------")
li = [21,32,4354,[12,122]]
a=copy.copy(li)
li[3][1]=34
print(li)
print(a)
print(id(li[3][1]))
print(id(a[3][1]))
print("-------------深拷贝----------------")
l = [21,32,4354,[12,122]]
b=copy.deepcopy(l)
l[3][1]=34
print(l)
print(b)
print(id(l[3][1]))
print(id(b[3][1]))