Python其他

Python中的浅拷贝、深拷贝以及直接赋值

Python中的浅拷贝、深拷贝以及引用,没有弄懂浅拷贝、深拷贝,在实际运用中,可能会出现意想不到的效果。

:其实就是对象的引用(别名)。
:拷贝父对象,不会拷贝对象的内部的子对象。
: 模块的 方法,完全拷贝了父对象及其子对象。

直接赋值实例:

a = {1:[1,2,3]}
b = a
a[1].append(4)
print(a) # {1: [1, 2, 3, 4]}
print(b) # {1: [1, 2, 3, 4]}

浅拷贝实例:

a = {1:[1,2,3,4]}
b = a.copy()
a[1].append(4)
print(a) # {1: [1, 2, 3, 4]}
print(b) # {1: [1, 2, 3, 4]}

深拷贝实例:

import copy
a = {1:[1,2,3]}
b = copy.deepcopy(a)
a[1].append(4)
print(a) # {1: [1, 2, 3, 4]}
print(b) # {1: [1, 2, 3]}

图解说明:

image.png

最后修改:2021-11-08 10:09:49