美文网首页
深拷贝与浅拷贝

深拷贝与浅拷贝

作者: RayRaymond | 来源:发表于2020-05-18 16:21 被阅读0次
    • 元祖无copy

    • 浅拷贝:
      相当于新建一个副本到新的地址里面,里面各个对象和各个源共用一个地址,修改副本里面的内容 不改变原对象

      • 在原对象中修改 会映射到副本中
      • 对于内部可变类型对象,公用一个地址,内容改变,地址不变,所以会映射到其他
      • 对于内部不可变类型对象: 公用一个地址,内容改变,地址也改变 所以不会映射到其他
    • 深拷贝

        import copy
        copy.deepcopy()
        list1=[1,2,4,5,6,7]
        list2=copy.deepcopy(list1)
      
      • 不可变类型:
        公用一个地址,内容改变 地址也改变 所以不会映射到其他
      • 可变类型:
        重新开辟空间新的地址,内容改变地址不变,所以不会映射到其
    • 直接赋值 = 引用

    b = a #赋值,传对象的引用
    

    所有改动都会映射到另一对象

    >>> a = [1,2,3]
    >>> b = a
    >>> b.append(1)
    >>> b
    [1, 2, 3, 1]
    >>> a
    [1, 2, 3, 1]
    

    相关文章

      网友评论

          本文标题:深拷贝与浅拷贝

          本文链接:https://www.haomeiwen.com/subject/krtpohtx.html