深浅拷贝

浅拷贝和深拷贝

不可变对象在赋值时会开辟新空间

可变对象在赋值时,修改一个引用的值,另一个引用也会发生改变

深浅拷贝对不可变对象拷贝时,不开辟新空间,相当于赋值操作

浅拷贝在拷贝时,只拷贝顶层中的引用,如果元素是可变对象,并且被修改,那么拷贝的对象也会发生变化

深拷贝在拷贝时,会逐层进行拷贝,直到所有的引用都是不可变对象为止。

Python 中有多种方式实现浅拷贝,copy模块的copy 函数 ,对象的 copy 函数 ,工厂方法,切片等。

大多数情况下,编写程序时,都是使用浅拷贝,除非有特定的需求

浅拷贝的优点:拷贝速度快,占用空间少,拷贝效率高

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 可变(mutable)和不可变(immutable)参数 不可变对象在进行重新赋值的时候,实际上是将原始值丢弃,将...
    楼程智阅读 1,284评论 1 1
  • 简述深浅拷贝 我们实例化的对象存储在堆区,而指向对象的指针一般存储在栈区。我们需要知道这个前提。  实际上拷贝分为...
    朽木自雕也阅读 636评论 1 3
  • 预备知识一——python的变量及其存储 在详细的了解python中赋值、copy和deepcopy之前,我们还是...
    Customer_阅读 1,460评论 0 4
  • Copy的作用 在OC中,copy 是利用一个源对象产生一个副本对象,本质就是当修改源对象的属性和行为,不会影响副...
    骑行怪状阅读 2,499评论 3 5
  • 我的感恩1感恩今天自己很早的起床了,让我感受到了自己的负责。2感恩今天自己保护了自己呀,让我感受到了自己的自卫能力...
    丽人d阅读 196评论 0 0