从底层剖析Python深浅拷贝(超详细)

2021-02-01 03:14

阅读:715

从底层剖析Python深浅拷贝(超详细)

 

赋值 =

 

- 不生成任何新的对象,与母体共有所有。

 

- 或者说就是母体本身改了个名而已

 

浅拷贝 .copy()

 

- 生成第一层引用对象(大容器),不生成其他新的引用对象(小容器)

 

- 大容器中的元素不会随着母体改变,小容器中的元素会随着母体改变

 

- 一定程度上与母体做出了差异化,但仍然不够彻底

 

 

 

深拷贝 deepcopy():

 

- 生成母体中所有存在的引用对象(大,小容器)

 

- 无论大容器还是小容器,所有内容都不会随着母体改变而改变

 

- 完全区分与母体,成为独立的个体

 

 

 

应用场景:

 

- 母体只有一个大容器内部无任何小容器(list,dict)等等即可直接使用浅拷贝

 

- 母体大容器中还存在其他小容器(listdictset)等等则使用深拷贝。

 

- 注意:以上说的所有小容器均是可变类型。

 

 

 

方法:

 

- from copy import deepcopy  # 深拷贝

 


评论


亲,登录后才可以留言!