当前位置 : 主页 > 编程语言 > python >

Python3入门之——浅拷贝和深拷贝

来源:互联网 收集:自由互联 发布时间:2022-08-10
由于Python使用了对象引用,因此在使用赋值操作符(=)时,并没有进行赋值操作。如果右边的操作数是字面值,比如字符串或数字,那么左边的操作数被设置为一个对象引用,该对象引用


由于Python使用了对象引用,因此在使用赋值操作符(=)时,并没有进行赋值操作。如果右边的操作数是字面值,比如字符串或数字,那么左边的操作数被设置为一个对象引用,该对象引用将指向存放字面值的内存对象。如果右边的操作数是一个对象引用,那么左边的操作数将设置为一个对象引用,并与右边的操作数指向相同的对象。

Python3入门之——浅拷贝和深拷贝_对象引用


Python3入门之——浅拷贝和深拷贝_对象引用_02

浅拷贝

如果需要组合类型数据(或其他可变对象)的一个单独副本。对于序列,在提取数据片时,数据片总是取自某个数据项的一个单独副本。

Python3入门之——浅拷贝和深拷贝_对象引用_03


对于字典与集合而言,这种复制操作可以使用dict.copy()与set.copy()来实现。此外,copy模块提供了copy.copy()函数,该函数返回给定对象的一个副本。对内置组合数据类型进行复制的另一种方法是使用类型名作为函数,将待复制的组合类型数据作为参数。

Python3入门之——浅拷贝和深拷贝_数据_04


这些复制技术都是浅拷贝,复制的只是对象引用,而非对象本身。对固定数据类型,比如数字与字符串,这与赋值的效果是相同的。但是对于可变的数据类型,比如嵌套的组合类型,这意味着相关对象同时被原来的组合与复制得来的组合应用。

Python3入门之——浅拷贝和深拷贝_对象引用_05

深拷贝

Python3入门之——浅拷贝和深拷贝_数据_06


Python3入门之——浅拷贝和深拷贝_python_07


上一篇:python安装及使用遇到的问题
下一篇:没有了
网友评论