浅拷贝

  • 可变类型浅拷贝
    copy函数就是浅拷贝,只对可变类型的第一层对象进行拷贝,
    对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象
    可变类型:a = [1, 2, 3] b = [11, 22, 33]
    有子对象的可变类型: data = [a, b]
    普通赋值
    data_mycopy = data — data和data_mycopy指向同一片空间
    浅拷贝
    data_copy = copy.copy(data) — data和data_copy指向不同的空间
  • 不可变类型浅拷贝
    不可变类型进行浅拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝了这个对象的引用
    不可变类型: a = (1, 2, 3) b = (11, 22, 33)
    有子对象的不可变类型:data = (a, b)
    data_copy = copy.copy(data) — data和data_copy指向同一片空间

发表本编内容,主要是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:772733408大家一起探讨。

 

 

深拷贝

  • 可变类型深拷贝
    深拷贝使用deepcopy函数
    只要发现拷贝对象有可变类型就会对该对象到最后一个可变类型的每一层对象进行拷贝,对每一层拷贝的对象都会开辟新的内存空间进行存储
    data_deepcopy = copy.deepcopy(data)
  • 不可变类型深拷贝
    不可变类型的深拷贝说明:
    不可变类型进行深拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝了这个对象的引用
    不可变类型: a = (1, 2, 3) b = (11, 22, 33)
    有子对象的不可变类型:data = (a, b)
    data_deepcopy = copy.deepcopy(data) — data和data_copy指向同一片空间

【原创】禁止转载

发表本编内容,主要是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:772733408大家一起探讨。

版权声明:本文为Chen000310原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Chen000310/p/13737931.html