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

Python的赋值、深拷贝、浅拷贝

时间:2017-05-29 12:53:25      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:完全   epc   对象   order   深拷贝   idt   lsp   cells   width   

a=b

a和b两个对象地址相同

a和b两个对象的子对象地址相同

a=copy.copy(b)

a和b两个对象地址不同

a和b两个对象的子对象地址相同

a=copy.deepcopy(b)

a和b两个对象地址不同

a和b两个对象的子对象地址不同

 

可以通过id(a) 来判断a地址,通过[id(x) for x in a]来判断a的子对象地址。

 

会发现:

a=b创建的对象,a和b以及a的子对象和b的子对象都是一样的,a或b的更改会彼此影响。两者的引用地址的一样的。

a=copy.copy(b),a只是拷贝了b的引用,创建了一个新的对象,但是两者的子对象是一样的。子对象的更改会创建新的对象,不会互相影响。

a=copy.deepcopy(b),完全是两个对象,同时也创建了新的子对象,两者互不影响。

Python的赋值、深拷贝、浅拷贝

标签:完全   epc   对象   order   深拷贝   idt   lsp   cells   width   

原文地址:http://www.cnblogs.com/genezhao/p/6917692.html

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