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

    原文:http://www.cnblogs.com/wilber2013/p/4645353.html

    Python中对象的赋值都是进行对象引用(内存地址)传递

    • 使用copy.copy(),可以进行对象的浅拷贝,它复制了对象,但对于对象中的元素,依然使用原始的引用.
    • 如果需要复制一个容器对象,以及它里面的所有元素(包含元素的子元素),可以使用copy.deepcopy()进行深拷贝
    • 对于非容器类型(如数字、字符串、和其他’原子’类型的对象)没有被拷贝一说
    • 如果元祖变量只包含原子类型对象,则不能深拷贝

    赋值

    1. 赋值是将一个对象的地址赋值给一个变量,让变量指向该地址( 旧瓶装旧酒 )
    2. 修改不可变对象(strtuple)需要开辟新的空间
    3. 修改可变对象(list等)不需要开辟新的空间

    浅拷贝

    仅仅复制了容器中元素的地址

    深拷贝

    完全拷贝了一个副本,容器内部元素地址都不一样

  • 相关阅读:
    PAT 甲级1135. Is It A Red-Black Tree (30)
    AVL树模板
    定时器模板
    Listview模板
    Hash二次探测
    BFS小结
    STL之set篇
    完全二叉树-已知中序排序,输出广度排序
    BZOJ2037: [Sdoi2008]Sue的小球
    poj1157LITTLE SHOP OF FLOWERS
  • 原文地址:https://www.cnblogs.com/zz27zz/p/7832171.html
Copyright © 2011-2022 走看看