python 中的深拷贝和浅拷贝

来源:互联网 发布:java class命名 编辑:程序博客网 时间:2024/05/21 19:24

python中的深拷贝和浅拷贝和java里面的概念是一样的,所谓浅拷贝就是对引用的拷贝,所谓深拷贝就是对对象的资源的拷贝。
首先,对赋值操作我们要有以下认识:

  1. 赋值是将一个对象的地址赋值给一个变量,让变量指向该地址( 旧瓶装旧酒 )。
  2. 修改不可变对象(strtuple,数字,)需要开辟新的空间
  3. 修改可变对象(list等)不需要开辟新的空间。                                                                                                                                                                                                                                                                                                                                                             浅拷贝是在另一块地址中创建一个新的变量或容器,但是容器内的元素的地址均是源对象的元素的地址的拷贝。也就是说新的容器中指向了旧的元素( 新瓶装旧酒 )。                                                                                                                                                      深拷贝是在另一块地址中创建一个新的变量或容器,同时容器内的元素的地址也是新开辟的,仅仅是值相同而已,是完全的副本。也就是说( 新瓶装新酒 )。
  4. copy 浅拷贝只是拷贝了父类对象,对子对象是引用关系
    deepcopy 深拷贝是开辟新的引用和新地址存储所有的数据
1 0
原创粉丝点击