首页 > 编程语言 > 详细

Python深拷贝与浅拷贝区别

时间:2019-11-21 21:27:29      阅读:85      评论:0      收藏:0      [点我收藏+]

可变类型

如list、dict等类型,改变容器内的值,容器地址不变。

不可变类型

如元组、字符串,原则上不可改变值。如果要改变对象的值,是将对象指向的地址改变了

浅拷贝

对于可变对象来说,开辟新的内存空间存储容器对象,但不开辟新空间存储容器的值,容器内部值的对象仍然指向原来的地址。即只对外层对象进行拷贝

不可变对象则将拷贝对象的值进行拷贝

深拷贝

对于可变对象,既开辟新的内存空间存储容器对象,也开辟新空间存储容器的值。也就是,既拷贝容器对象,也拷贝容器对象内部的值对象

不可变对象则将拷贝对象的值进行拷贝

下面这张我自己画的图可以更直观地理解Python中深拷贝与浅拷贝的区别

技术分享图片

 

 

Python深拷贝与浅拷贝区别

原文:https://www.cnblogs.com/mumuxin-gv/p/11908385.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!