python深拷贝、浅拷贝。

时间:2021-12-09 03:11:58

浅拷贝

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

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