浅拷贝:拷贝第一层内容.不拷贝内部子对象,用 [:]或copy() 。赋值,没有创建新对象. 共用同一个对象,他们是相同的,赋值后的变量指向原有的内存地址
深拷贝:拷贝所有内容. 包括内部的所有,形成一个新的对象,虽然与之前的值和内容一模一样,但是它们完完全全的两个对象,用deepcopy()
>>> import copy
>>> origin = [1,[3,4]]
#origin 里边有三个元素:1, 2,[3,4]
>>> cop1 = copy.copy(origin)
>>> cop2 = copy.deepcopy(origin)
>>> cop1 == cop2
True
>>> cop1 is cop2
False
#cop1 和 cop2 看上去相同,但已不再是同一个object
>>> origin[2][0] = "hey!"
>>> origin
[1,[‘hey!‘,4]]
>>> cop1
[1,4]]
>>> cop2
[1,4]]
#把origin内的子List [3,4] 改掉了一个元素,观察 cop1 和 cop2
总结:1、深拷贝是对源对象的赋值(深层对象),占用的内存空间不同2、浅拷贝是对最外层对象进行拷贝,占用的内存空间相同3、深拷贝:数据拷贝更加安全(容灾特性)4、浅拷贝:节省资源和内存空间总结
以上是内存溢出为你收集整理的python中的对象存储以及深浅拷贝全部内容,希望文章能够帮你解决python中的对象存储以及深浅拷贝所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)