RUN__IT # python的深拷贝和浅拷贝

浅拷贝:就是拷贝的是引用、指向,真正的数据内容并没有重新申请内存空间。
深拷贝:不再是指向了数据内容,而是开辟新的内存空间,把数据重新储存。

浅拷贝

变量的赋值就是一种浅拷贝,仅仅是把变量名的引用指向了数据。
如:a = 1,b = a。数据在内存上只有一份,但有两个名字而已。
copy.copy()

深拷贝

深拷贝是对一个对象深层(递归)拷贝,保证了数据的独立性。
copy.deepcopy()

注意事项

如果是可变类型,浅拷贝只拷贝外层,而深拷贝是完全拷贝。
如果是纯数字的不可变类型,那么无论是浅拷贝还是深拷贝,都只是指向同一个地址。
如果不可变类型里面还存在可变类型,则浅拷贝是指向,深拷贝是完全拷贝。
列表切片,字典的copy方法均属于浅拷贝。

猜你喜欢

转载自blog.csdn.net/RUN__IT/article/details/89406694
今日推荐