浅拷贝与深拷贝

直接赋值

就是对象的引用

例:

可以看到,对将a赋给b,但修改了b的值,a的值也会发生变化

因为赋值其实就是引用对象的内存地址,并不是重新开辟内存空间进行存储,所以a的值也发生了变化

 

浅拷贝

拷贝父对象,不会拷贝对象的内部的子对象

例:

使用a.copy赋值叫做浅拷贝

 

深拷贝

copy模块的deepcopy方法,完全拷贝了父对象及其子对象

例:

 

按照具体需求选择合适的赋值或者拷贝形式:

建议:在内存足够的情况下,选择深拷贝,这样逻辑处理独立,不会产生上下文的影响,不容易发生难以解决的bug。

 

posted @ 2021-12-07 15:00  人机97  阅读(35)  评论(0)    收藏  举报