讲一下我自己理解的“赋值“,“浅拷贝”,“深拷贝”

今天来讲一下我自己理解的  “赋值“,“浅拷贝”,“深拷贝” 

     

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

这个也是很多面试官会问的一个常见问题,所以今天有感而发整理出来.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章