zoukankan      html  css  js  c++  java
  • python:浅拷贝和深拷贝

    直接上代码:

    # 浅拷贝、深拷贝:拷贝出来的新对象的地址和原对象是不一样的,但是:
    # 对于:
    # 浅拷贝:新对象里面的可变元素(如列表)的地址和原对象里的可变元素的地址是相同的
    # 对于:
    # 深拷贝:新对象里面的可变元素(如列表)的地址和原对象里的可变元素的地址不相同
    
    import copy
    a=[1,2,3,4,5,['a','b']]
    #原始对象
    b=a#赋值,传对象的引用
    c=copy.copy(a)#对象拷贝,浅拷贝
    d=copy.deepcopy(a)#对象拷贝,深拷贝
    print("a=",a,"    id(a)=",id(a),"id(a[5])=",id(a[5]))
    print("b=",b,"    id(b)=",id(b),"id(b[5])=",id(b[5]))
    print("c=",c,"    id(c)=",id(c),"id(c[5])=",id(c[5]))
    print("d=",d,"    id(d)=",id(d),"id(d[5])=",id(d[5]))
    print('id(a[1])=',id(a[1]))
    print('id(c[1])=',id(c[1]))
    print('id(d[1])=',id(d[1]))
    print("*"*70)
    
    a[0] = 0
    a.append(6)#修改对象a
    a[5].append('c')#修改对象a中的['a','b']数组对象
    print("a=",a,"    id(a)=",id(a),"id(a[5])=",id(a[5]))
    print("b=",b,"    id(b)=",id(b),"id(b[5])=",id(b[5]))
    print("c=",c,"       id(c)=",id(c),"id(c[5])=",id(c[5]))
    print("d=",d,"            id(d)=",id(d),"id(d[5])=",id(d[5]))
    print('id(a[1])=',id(a[1]))
    print('id(c[1])=',id(c[1]))
    print('id(d[1])=',id(d[1]))

  • 相关阅读:
    修改Mysql5.7的root密码
    PHP---练习-----留言板
    PHP----练习------球队列表
    PHP---------ajax
    PHP------Jquery的用法
    PHP-----JSOM类型数据
    PHP-------- JQUERY方式
    PHP-------PDO:数据访问抽象层
    PHP-----练习-------租房子-----增删改查,多条件查询
    PHP------练习------投票
  • 原文地址:https://www.cnblogs.com/KeenLeung/p/12424813.html
Copyright © 2011-2022 走看看