码迷,mamicode.com
首页 > 编程语言 > 详细

python 的深拷贝与浅拷贝

时间:2018-05-21 22:56:36      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:代码   组合   对组   alt   col   end   技术   产生   pen   

一句话总结,浅拷贝只拷贝父对象,不拷贝子对像。

注意:浅拷贝和深拷贝的不同仅仅是对组合对象来说,所谓的组合对象就是包含了其它对象的对象,如列表,类实例。而对于数字、字符串以及其它“原子”类型,没有拷贝一说,产生的都是原对象的引用。下面通过代码来演示

import copy
a=[[1,2],[3,4]]
b=copy.copy(a)
c=copy.deepcopy(a)

现在a b c都是等于[[1,2],[3,4]]

现在我们来改变a的父对象

a.append(5)

现在再来打印a b c的值,变成了

技术分享图片

这是因为深拷贝与浅拷贝都会拷贝父对象,对于父对象来说,他们都是独立的,所以值不会变。

现在我们来改变a的子对象

 a[0][0]=0

现在来打印a b c的值

技术分享图片

浅拷贝只拷贝父对象,所以a的子对象改变时,浅拷贝的b的子对象也跟着变了,而深拷贝的c的子对象是独立的,所以没有变

 

python 的深拷贝与浅拷贝

标签:代码   组合   对组   alt   col   end   技术   产生   pen   

原文地址:https://www.cnblogs.com/zhoufankui/p/9069581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!