今天来讲一下我自己理解的 “赋值“,“浅拷贝”,“深拷贝”
1.赋值
"""= 赋值 赋值只是将a的引用赋值给了b"""
#a = [1,2,3,[4,5]]
# b = a
# b.append(6)
# print(a)
#执行结果: [1, 2, 3, [4, 5],6] a
如上面所有,a只是将b的引用给了b,而b在尾部添加了一个元素6则会影响到a。
这也是 网上“对象赋值实际上是对象的引用”的体现了
2.浅拷贝
"""copy,浅拷贝,只是复制了a里面的数据,但是里面的子对象没有被复制!"""
# a = [1,2,3,[4,5]]
# b = a.copy()
# b[3].append(6)
# print(a)
# 执行结果:[1, 2, 3, [4, 5, 6]] a
3.深拷贝
"""深copy,不但复制了a里面的数据,而且连a里面的子对象也被复制了!"""
a = [1,2,3,[4,5]]
b = copy.deepcopy(a)
b[3].append(6)
print(a)
#执行结果: [1, 2, 3, [4, 5]] a
这个也是很多面试官会问的一个常见问题,所以今天有感而发整理出来.