2026/5/18 21:28:12
网站建设
项目流程
建设网站前的需求分析,lol关键词查询,模板外贸网站建设,wordpress igoogle在自动化测试/测试开发岗位面试时#xff0c;浅拷贝和深拷贝经常涉及到#xff0c;目的是评估候选人对 Python 数据结构处理和内存管理的理解#xff0c;本文通过详细的测试验证帮你全面理解深浅拷贝及它们的区别
关于深浅拷贝
在 Python 中#xff0c;用等号 给变量赋值…在自动化测试/测试开发岗位面试时浅拷贝和深拷贝经常涉及到目的是评估候选人对 Python 数据结构处理和内存管理的理解本文通过详细的测试验证帮你全面理解深浅拷贝及它们的区别关于深浅拷贝在 Python 中用等号 给变量赋值时并不会真正复制对象而只是让新的变量指向原来的对象。也就是说新变量和原来的变量其实是共享同一个对象。如果想要创建一个“真正的副本”让新对象和原对象互相独立我们可以使用 Python 的 copy 模块来实现。copy 模块中提供了两种方式深拷贝及浅拷贝深拷贝和浅拷贝的概念用于描述对象的复制方式它们的主要区别在于是否递归复制对象中的嵌套对象。浅拷贝创建一个新对象只复制原对象的第一层引用嵌套对象仍然与原对象共享引用。深拷贝创建一个完全独立的新对象递归复制原对象及其嵌套对象的所有内容。Python深拷贝语法copy.deepcopy(x)Python浅拷贝语法copy.copy(x)为了更加直观了解深拷贝和浅拷贝的区别这里我们可以通过代码可视化网站python tutor清楚的看到代码执行的每一步发生了什么、变量的作用域和其对应关系都一目了然Python Tutor - Python Online Compiler with Visual AI Help测试验证浅拷贝单层数据结构对于可变类型如列表、字典、集合浅拷贝会开辟新的空间地址进行浅拷贝对于不可变类型如数字、字符串、元组浅拷贝仅仅是地址指向不会开辟新空间拷贝值外层对象是可变的内层对象是不可变的外层对象是不可变的内层对象是可变的外层对象是可变的内层对象是可变的外层对象是不可变的内层对象是不可变的浅拷贝总结浅拷贝是对一个对象父级外层的拷贝并不会拷贝子级内部。使用浅拷贝的时候分为两种情况第一种如果最外层的数据类型是可变的如列表、字典、集合浅拷贝会开启新的地址空间去存放。第二种如果最外层的数据类型是不可变的如数字、字符串、元组浅拷贝对象的时候还是引用原对象的地址空间。测试验证深拷贝单层数据结构这里的表现和浅拷贝是一样的对于外层对象是可变的内层对象是不可变的对于外层对象是不可变的内层对象是可变的外层对象是可变的内层对象是可变的外层对象是不可变的内层对象是不可变的深拷贝总结深拷贝对一个对象是所有层次的拷贝递归内部和外部都会被拷贝过来。深拷贝也分两种情况第一种最外层数据类型可变。外层的会新开辟地址空间存放。如果里面是可变数据类型内部会新开辟地址空间存放。如果内部数据类型不可变内部则是对地址的引用。第二种外层数据类型不可变如果内部数据是可变数据类型外部和内部都会新开辟地址空间存放。如果内部数据类型不可变外部和内部都是对地址的引用。感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取