Python - 深拷贝&浅拷贝
一、相关模块和方法
- 模块:copy
拷贝方式 | 区别 | 方法 |
---|---|---|
浅拷贝 | 最多拷贝对象的一层 | copy(拷贝对象) |
深拷贝 | 可能拷贝对象的多层 | deepcopy(拷贝对象) |
二、浅拷贝
- 不可变类型进行浅拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝这个对象的引用
1 | import copy # 使用浅拷贝需要导入copy模块 |
- 可变类型进行浅拷贝只对可变类型的第一层对象进行拷贝,对拷贝的对象会开辟新的内存空间进行存储,子对象不进行拷贝
1 | import copy # 使用浅拷贝需要导入copy模块 |
三、深拷贝
- 不可变类型进行深拷贝如果子对象没有可变类型则不会进行拷贝,而只是拷贝了这个对象的引用,否则会对该对象到最后一个可变类型的每一层对象就行拷贝, 对每一层拷贝的对象都会开辟新的内存空间进行存储
1 | import copy # 使用深拷贝需要导入copy模块 |
- 可变类型进行深拷贝会对该对象到最后一个可变类型的每一层对象就行拷贝, 对每一层拷贝的对象都会开辟新的内存空间进行存储
1 | import copy # 使用深拷贝需要导入copy模块 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 妙妙屋!