说明:深浅拷贝是针对可变元素(引用类型)而言的,不可变元素不存在深浅拷贝的问题
示例:
import copy
# 值类型(不可变类型)
a = 123
a2 = a
a3 = copy.copy(a)
a4 = copy.deepcopy(a)
print(a is a2)
print(a is a3)
print(a is a4)
# 引用类型(可变类型)
b = [1, 2, [3, 4]]
b2 = b
# 浅拷贝:只拷贝对象本身,内部元素只拷贝引用
b3 = copy.copy(b)
# 深拷贝:不但拷贝对象本身,还会拷贝内部元素
b4 = copy.deepcopy(b)
print(b is b2)
print(b is b3)
print(b is b4)
b[0] = 100
b[2][0] = 300
print(b2)
print(b3)
print(b4)
c = [1, 2, [3, 4]]
# 浅拷贝
d = c.copy()
print(c is d)
c[0] = 100
c[2][0] = 200
print(d)