Advertisement

Python中实现浅拷贝与深拷贝的区别及其代码实现

阅读量:

Python赋值机制解析

  • 总结
    • 一、概念解析

      • 赋值:沿用原有内容进行存储
      • 浅拷贝:使用新的容器保存原有数据
      • 深拷贝:采用全新的容器装载全新的数据
    • 二、实例验证

      • 实验方式
      • 直接赋值操作
      • 实施浅层复制
      • 进行深度复制
    • 补充材料:完整代码示例

关于赋值、浅拷贝与深拷贝的探讨

总结

  • 赋值: 创建一个指向原对象内存地址的引用,该操作不会为对象本身分配新的存储空间;
    • 浅拷贝: 建立对原对象第一层级子元素内存地址的多个引用,此过程需为对象本身分配新的存储区域;
    • 深拷贝: 将原对象中所有层级的子元素数据进行复制,每一项数据都将被分配独立的存储空间。

一、概念解析与界定

赋值:旧瓶装旧酒

在执行复制操作时,最为基础的方式便是赋值操作,其本质是创建一个对象的引用,即新生成的对象与原对象共同指向相同的内存地址,(整体指向)该过程仅增加了引用计数,并未产生新的内存分配
由此可知,当其中一个对象发生改变时,另一个对象也会随之发生变化。

浅拷贝:新瓶装旧酒

浅拷贝从字面意思上理解,即为一种较为浅层的复制方式。我们可以将赋值行为视为创建了一个新对象的引用,即将原有对象所占据内存空

全部评论 (0)

还没有任何评论哟~