Python面试高频问题浅拷贝和深拷贝源码分析


这篇文章主要介绍“Python面试高频问题浅拷贝和深拷贝源码分析”,在日常操作中,相信很多人在Python面试高频问题浅拷贝和深拷贝源码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python面试高频问题浅拷贝和深拷贝源码分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧! 在Python可变数据类型(列表,字典,集合)中,把一个可变数据类型的变量赋给另一个变量,这两个变量引用的是同一个对象,内存地址是一样的,修改当中的一个变量,另一个变量相应也会被修改。举一个例子:输出结果这里就不再多做解释了, l1 和l2的地址相同,所以彼此间会产生影响。拷贝了一个对象的最顶层,只拷贝了对象的”引用”。举一个前面文章的例子,list中只有一层,即元素中不包含其他list。从结果可以看到,l3 和l4的地址不同,所以彼此间不会发生影响。我们再上一个例子,让l3中的第一个元素是一个list。结果完全符合预期,因为第一个元素是list,那么他也是有地址的,我们对其进行打印。我们发现l3[0]和l4[0]的地址居然一样,再执行如下代码。结果符合预期,修改l3[0]的值也影响了l4[0]。那么我们怎么做才能让l3[0]和l4[0]彼此也不发生影响呢,这就需要引入深拷贝。深拷贝对对象中的每一层都进行了拷贝,拷贝后的对象与原对象完全独立,没有任何关系。要想实现深拷贝需要使用copy 模块中的deepcopy方法。可以看到l3[0]和l4[0],已经完全独立,彼此没有影响了。话不多说,用两张图就可以进行简单解释:浅拷贝,如下图:深拷贝,如下图:到此,关于“Python面试高频问题浅拷贝和深拷贝源码分析”的学习就结束了,希望能够解决大家的疑惑。理论与实免费云主机域名践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: Flutter Component动画的显和隐怎么实现

这篇文章主要讲解了“FlutterComponent动画的显和隐怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“FlutterComponent动画的显和隐怎么实现”吧!Flutter中包含大量的动免费云…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/29 12:15
下一篇 06/29 12:15

相关推荐