Python浅拷贝与深拷贝的一点简单理解

Python中的对象分为可变对象与不可变对象,其区别主要在于内存地址,也即id的不同
对于不可变对象,浅拷贝与深拷贝没有区别,而对于可变对象,浅拷贝以及赋值语句均是把对象的id赋值给新的拷贝对象,而深拷贝则是会创建新的id
例:

图片.png

判断id是否相同:

图片.png

改变a中的对象,可以看到赋值的b,浅拷贝的c均改变,而深拷贝的d不变,原因就是d已经引用了不同的id:

图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 深拷贝和浅拷贝这个问题在面试中常常被问到,而在实际开发中,只要稍有不慎,就会在这里出现问题。尤其对于初学者来说,我...
    西门淋雨阅读 1,846评论 0 1
  • python的赋值号 python的赋值符号会创建一个新的对象出来,并与之关联,无论其是不是可变类型。 如上代码所...
    __Aster__阅读 643评论 0 0
  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 1,593评论 0 1
  • 我们都是宇宙中渺小的尘埃。我们散落在这世间,卑微且不值一提。 我一直认为我的朋友们是天底下最好的人...
    不二臣Mikey阅读 191评论 0 0
  • 二分查找,也称折半查找目的:提高查找速度(当查找性能成为问题时,考虑使用二分查找) 使用前提:(较为严格)已经排好...
    NiceBlueChai阅读 367评论 0 0