Python 爬阶梯 | 如何对对象进行拷贝,深拷贝和浅拷贝的区别是什么?

什么是对象拷贝

之前我们说过,有些对象是可变的,比如 List,dict,set ;有些对象是不可变的,比如 Number,Tuple 等。

对于不可变的对象,我们在赋值的时候一般都是把 name 绑定到对象去。而对于可变对象,往往我们可以利用它们内置的方法对对象本身进行 copy。

比如像这样一个列表的拷贝:

也就说,如果已经存在了一个列表了,你想要创建一个和它一样的,你不需要重新创建一个,你只要 copy 这个列表就可以了:

本文隐藏内容 登陆 后才可以浏览
以上就是对象中的深拷贝和浅拷贝的区别,在这里我举了内置对象 list 的例子来说明它们的关系,但其实,对于拷贝可以用在任何其它对象,比如我们自定义的对象。

你知道如何对自定义对象进行拷贝么,你可以私底下试试,下一篇我会举个自定义对象的拷贝例子供你参考。

2 Replies to “Python 爬阶梯 | 如何对对象进行拷贝,深拷贝和浅拷贝的区别是什么?”

  1. rush_B说道:

    list_b浅拷贝lisi_a ,lis_a变更索引0的值在一维列表的条件下,list_b不会随list_a改变,只有在二维列表下才会改变,不知道这样解释对不对。

发表回复