Python中的对象分为可变对象与不可变对象,其区别主要在于内存地址,也即id的不同
对于不可变对象,浅拷贝与深拷贝没有区别,而对于可变对象,浅拷贝以及赋值语句均是把对象的id赋值给新的拷贝对象,而深拷贝则是会创建新的id
例:
![](https://img.haomeiwen.com/i6071609/b769a4b44e73297c.png)
判断id是否相同:
![](https://img.haomeiwen.com/i6071609/dcb42c35865081ef.png)
改变a中的对象,可以看到赋值的b,浅拷贝的c均改变,而深拷贝的d不变,原因就是d已经引用了不同的id:
![](https://img.haomeiwen.com/i6071609/e10f93eb29928efa.png)
Python中的对象分为可变对象与不可变对象,其区别主要在于内存地址,也即id的不同
对于不可变对象,浅拷贝与深拷贝没有区别,而对于可变对象,浅拷贝以及赋值语句均是把对象的id赋值给新的拷贝对象,而深拷贝则是会创建新的id
例:
判断id是否相同:
改变a中的对象,可以看到赋值的b,浅拷贝的c均改变,而深拷贝的d不变,原因就是d已经引用了不同的id:
本文标题:Python浅拷贝与深拷贝的一点简单理解
本文链接:https://www.haomeiwen.com/subject/ceuafxtx.html
网友评论