栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python中的深拷贝和浅拷贝

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中的深拷贝和浅拷贝

类的深拷贝和浅拷贝

浅拷贝 Python拷贝一般都是浅拷贝 拷贝时 对象包含的子对象内容不拷贝 因此 源对象和拷贝对象会引用同一个子对象。

深拷贝 使用copy模块的deepcopy函数 递归拷贝对象中包含的子对象 故源对象和拷贝对象所有的子对象都不相同。

# 浅拷贝
disk Disk() # 创建一个硬盘类的对象
computer Computer(cpu1, disk) # 创建一个计算机类的对象
import copy
computer2 copy.copy(computer)
print(computer, computer.cpu, computer.disk)
print(computer2, computer2.cpu, computer2.disk)
# computer和computer2是两个不同的对象 输出id不同 但是两个所包含的子对象cpu disk的id是相同的
# 这是因为浅拷贝只对Computer类的实例对象进行拷贝 然后computer1和computer2指向这个拷贝 但是不对子对象 即disk和cpu的实例对象进行拷贝
# 所以computer1和computer2的disk和cpu依然指向Computer的实例对象 所以Computer的对象有两个 而cpu和disk只有1份
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268328.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号