python 深浅拷贝,深浅拷贝的区别

ernestwang 799 0

深浅拷贝

  • 说明:深浅拷贝是针对可变元素(引用类型)而言的,不可变元素不存在深浅拷贝的问题
  • 示例:
    import copy
    
    # 值类型(不可变类型)
    a = 123
    a2 = a
    a3 = copy.copy(a)
    a4 = copy.deepcopy(a)
    
    print(a is a2)
    print(a is a3)
    print(a is a4)
    
    # 引用类型(可变类型)
    b = [1, 2, [3, 4]]
    b2 = b
    # 浅拷贝:只拷贝对象本身,内部元素只拷贝引用
    b3 = copy.copy(b)
    # 深拷贝:不但拷贝对象本身,还会拷贝内部元素
    b4 = copy.deepcopy(b)
    
    print(b is b2)
    print(b is b3)
    print(b is b4)
    
    b[0] = 100
    b[2][0] = 300
    print(b2)
    print(b3)
    print(b4)
    
    c = [1, 2, [3, 4]]
    # 浅拷贝
    d = c.copy()
    
    print(c is d)
    
    c[0] = 100
    c[2][0] = 200
    
    print(d)

标签: 拷贝 python

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~

复制成功
微信号: irenyuwang
关注微信公众号,站长免费提供流量增长方案。
我知道了