Python深浅拷贝

本文介绍了Python中的浅拷贝和深拷贝概念,通过实例说明了它们的区别:浅拷贝只复制对象引用,而深拷贝递归地复制对象及其所有子对象。使用`copy`模块的`deepcopy`函数实现深拷贝,确保修改子对象不影响源对象。
摘要由CSDN通过智能技术生成

浅拷贝:拷贝对象,但不拷贝子对象的内容,只是拷贝子对象的引用。
深拷贝:拷贝对象,并且会连子对象的内存也全部(递归)拷贝一份,对子对象的修改不会影响源对象,使用 copy 模块的 deepcopy 函数,递归拷贝对象中包含的子对象。
在这里插入图片描述

import copy
class MobilePhone:
    def __init__(self,cpu):
        self.cpu = cpu
class CPU:
    pass
c = CPU()
m = MobilePhone(c)
print("----浅拷贝-------")
m2 = copy.copy(m)   #m2是新拷贝的另一个手机对象
print("m:",id(m))
print("m2:",id(m2))
print("m的cpu:",id(m.cpu))
print("m2的cpu:",id(m2.cpu))   #m2和m拥有了一样的cpu对象
print("----深拷贝--------")
m3 = copy.deepcopy(m)
print("m:",id(m))
print("m3:",id(m3))
print("m的cpu:",id(m.cpu))
print("m3的cpu:",id(m3.cpu))   #m3和m拥有不一样的cpu对象
#执行结果:
#----浅拷贝-------
#m: 1879267229360
#m2: 1879267228592
#m的cpu: 1879267229648
#m2的cpu: 1879267229648
#----深拷贝--------
#m: 1879267229360
#m3: 1879267222256
#m的cpu: 1879267229648
#m3的cpu: 1879267221968
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力码代码的小赵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值