python深拷贝、浅拷贝。

浅拷贝

拷贝内存地址,拷贝出来的值指向同一个内存地址(拷贝了引用,并没有拷贝内容)

 

深拷贝

深拷贝是对于一个对象所有层次的拷贝(递归)

a = [11,22,33]
b = a  #浅拷贝  指向同一个内存地址。

print(id(a) == id(b)) #True
print(id(a))
print(id(b))

import copy

 #深拷贝  内容相同,但重新开辟一个新内存,内存地址不同。

c = a.copy()
print(id(a) == id(c)) #False
print(id(a))
print(id(c))
import copy
a = [11, 22, 33]
b = [55, 44]

c = [a, b]

print(c,"--->c")   # [[11, 22, 33], [55, 44]] --->c

a.append(66)
print(c,"--->c")  #[[11, 22, 33, 66], [55, 44]] --->c


d = copy.deepcopy(c)
print(d,"--->d") #[[11, 22, 33, 66], [55, 44]] --->d

b.append(666)
print(d,"--->d") #[[11, 22, 33, 66], [55, 44]] --->d

 

posted on 2018-03-12 20:04  ksunone  阅读(99)  评论(0编辑  收藏  举报

导航