zoukankan      html  css  js  c++  java
  • 深拷贝、浅拷贝

    如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短。

    如果B没变,那就是深拷贝,自食其力。不仅A会影响B,B也会影响A,即互相影响

    import copy
    a = [1,2,['x','y']]
    b = a   #全影响
    c = copy.copy(a)  #浅拷贝,第一层不影响,第二层有影响
    d = copy.deepcopy(a)   #深拷贝,互不影响
    
    a.append(3)
    a[2].append('z')
    a.append(['x','y'])
    
    print('a1=',a)
    print('b1=',b)
    print('c1=',c)
    print('d1=',d)
    
    b.append(4)
    b[2].append('b')
    print('b4=',b)
    print('a4=',a)
    
    
    c.append(5)
    c[2].append('c')
    print('c5=',c)
    print('a5=',a)
    
    d.append(6)
    d[2].append('d')
    print('d6=',d)
    print('a6=',a)
    a1= [1, 2, ['x', 'y', 'z'], 3, ['x', 'y']]
    b1= [1, 2, ['x', 'y', 'z'], 3, ['x', 'y']]
    c1= [1, 2, ['x', 'y', 'z']]
    d1= [1, 2, ['x', 'y']]
    b4= [1, 2, ['x', 'y', 'z', 'b'], 3, ['x', 'y'], 4]
    a4= [1, 2, ['x', 'y', 'z', 'b'], 3, ['x', 'y'], 4]
    c5= [1, 2, ['x', 'y', 'z', 'b', 'c'], 5]
    a5= [1, 2, ['x', 'y', 'z', 'b', 'c'], 3, ['x', 'y'], 4]
    d6= [1, 2, ['x', 'y', 'd'], 6]
    a6= [1, 2, ['x', 'y', 'z', 'b', 'c'], 3, ['x', 'y'], 4]
    欢迎各路侠客多多指教^_^
  • 相关阅读:
    2、什么是session?
    1、什么是cookie?
    Vuejs实战项目五:数据列表
    Vuejs实战项目四:权限校验
    vue开发中控制台报错问题
    Vuejs实战项目三:退出系统功能实现
    Vuejs实战项目:登陆页面
    Vuejs实战项目步骤一
    springmvc:文件上传
    ssm整合:搭建环境
  • 原文地址:https://www.cnblogs.com/cailingsunny/p/15764015.html
Copyright © 2011-2022 走看看