Python中赋值、浅拷贝和深拷贝的区别
程序员文章站
2022-09-27 09:07:14
前言文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 结论:赋值:只是将变量指向了原对象,其实就是对象的引用(别名);浅拷 ......
前言
文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
ps:如有需要python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/a6zvjdun
结论:
赋值:只是将变量指向了原对象,其实就是对象的引用(别名);
浅拷贝(copy):copy 模块的 copy 方法,只拷贝父对象,不会拷贝对象的内部的子对象;
深拷贝(deepcopy):copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
实例:
复制可变对象:
复制可变对象执行结果:
可以看到,复制可变对象时,赋值并没有生成新的对象,只是将变量指向了原对象,而浅拷贝和深拷贝都生成了新的对象,但是浅拷贝没有复制对象的子对象,所以修改子对象的值后,浅拷贝生成的新对象的值也发生了变化,而深拷贝生成的新对象并没有随着被拷贝对象子对象的修改而变化。
复制不可变对象:
复制不可变对象执行结果:
对比上面复制可变对象执行结果可以看出,复制不可变对象时,区别是浅拷贝也没有生成新的对象,而是和赋值一样,直接指向了原对象。
如果你处于想学python或者正在学习python,python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!