Python 深拷贝和浅拷贝深析

本文深入探讨Python中的深拷贝和浅拷贝概念。首先介绍了可变对象与不可变对象的区别,不可变对象如元组虽然其数据结构不可变,但内部的可变对象仍能被修改。接着详细阐述了浅拷贝和深拷贝的定义,浅拷贝在拷贝可变对象时拷贝引用,而深拷贝则会为所有对象创建新副本。同时,文章提到了拷贝过程中的驻留问题,以及在深拷贝时元组中不可变对象和可变对象的不同处理方式。
摘要由CSDN通过智能技术生成

1.可变对象与不可变对象

创建变量:python创建一个变量,先创建了对象,然后在该对象上贴了一个变量名标签(也可以说变量名引用该对象)。

可变对象:支持在原处修改(可以对原地址存储的对象进行修改)

不可变对象:不支持在原处修改

注意:元组存储的是对里面对象的引用,是不可变对象,即:元组数据结构不可变(里面的引用(对象的标签)不可变),但是可以改变标签对应的对象(如果是可变数据类型)

2.深浅拷贝

  • 浅拷贝

    • 定义:拷贝不可变对象时创建新的对象,拷贝可变对象时拷贝引用(标签)
  • 深拷贝

    • 定义:拷贝不可变对象和可变对象时均创建新的对象
  • 拷贝出现的问题

    • 驻留问题

      • 问题描述:拷贝一些不可变对象时并没有创建新的对象,还是拷贝的引用。

      • 比如元组(里面无可变对象),字符串,小整数等

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值