第三节 浅拷贝与深拷贝

为了解决可变类型的麻烦,前辈们设计了深浅拷贝,现在来看看它们是怎么用的吧.

浅拷贝

拷贝的对象只含有不可变类型

第三节 浅拷贝与深拷贝_第1张图片
1
第三节 浅拷贝与深拷贝_第2张图片
例1

拷贝的对象中含有可变类型

第三节 浅拷贝与深拷贝_第3张图片
2
第三节 浅拷贝与深拷贝_第4张图片
例2

小结

1.只有当拷贝对象中含有数据结构类型如列表,并且是列表里的值发生改变时,变量b也会变化,其余情况均不变,注意a.append(4)产生的结果.

  1. 浅拷贝 既不是独立赋值,也不是复制,注意看图理解三者的区别.(极其重要)

深拷贝

第三节 浅拷贝与深拷贝_第5张图片
深拷贝图解

小结

深拷贝的本质是独立赋值 ,只不过人们为了偷懒,不想再抄一遍,于是就有了deepcopy这个函数.

第三节 浅拷贝与深拷贝_第6张图片
一图解千愁

结语

这一部分内容虽然不会影响做题或者做小项目,但是搞懂这些原理,百利而无一害

你可能感兴趣的:(第三节 浅拷贝与深拷贝)