深、浅拷贝

这篇文章来给大家介绍一下python中的深浅拷贝一个对象,但是又不想对原对象产生副作用,那就不能通过赋值给新变量来解决,因为赋值不是拷贝一个对象。在python中专门提供了一种拷贝机制,基于原对象创建一个含有相同值的对模块提供。

首先,拷贝分为深拷贝和浅拷贝,现在我们详细说一下它们

浅拷贝是什么?

  • 浅拷贝是对于一个对象的顶层拷贝通俗的说,就像拷贝了文件夹,没有拷贝文件夹里的内容。

  

 

 

   如上图,a = b,这种方式赋值只是赋值的引用(内存地址),a和b都指向了同一个内存空间,所以它们的id相同(地址相同),这种就是浅拷贝

浅拷贝包括:

  • 对列表切片拷贝 L[:]
  • 调用对象的拷贝方法 list.copy()
  • 调用 copy.copy()

    import copy

    copy.copy             (浅拷贝,仅仅拷贝对象的第一层对象)       

深拷贝是什么?

  • 拷贝所有内容. 包括内部的所有,形成一个新的对象,虽然与之前的值和内容一模一样,但是它们完完全全的两个对象,用deepcopy()

深拷贝包括:

  • 调用 copy.deepcopy()

     import copy

     copy.deepcopy     (深拷贝,会递归拷贝)   

 

posted @ 2019-09-27 16:47  奥力给、  阅读(110)  评论(0)    收藏  举报