今天来讲一下我自己理解的 “赋值“,“浅拷贝”,“深拷贝”
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
这个也是很多面试官会问的一个常见问题,所以今天有感而发整理出来.