千家信息网

C++, Java, Python中的浅复制举例分析

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,本篇内容介绍了"C++, Java, Python中的浅复制举例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2024年11月17日C++, Java, Python中的浅复制举例分析

本篇内容介绍了"C++, Java, Python中的浅复制举例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

01

对象的浅复制,深复制问题,在面试中经常被问到,不管是 C++, Java, 还是 Python,一般都会问这个问题。今天以Python为例来说明浅复制问题。

02

从 List 的 copy() 说起

先从简单说起,如下:

monkeys = ['jone','yone','mary']

wukongs = monkeys.copy()

print(wukongs)

>>>['jone', 'yone', 'mary']

我们成功克隆出 wukongs.

到这里,还只是复制,完全看不出什么是浅复制。

03

接下来,就看浅复制

我们向 monkeys群体中,添加一组动物,如下,然后再次复制 monkeys .

monkeys.append(['nuzha','honghaier'])

print(monkeys)

#>>>['jone', 'yone', 'mary', ['nuzha', 'honghaier']]

print(wukongs)

#>>>['jone', 'yone', 'mary']

#再次复制mokeys给 wukongs

wukongs = monkeys.copy()

print(wukongs)

#>>>

此时打印 wukongs,可以看到:

['jone', 'yone', 'mary', ['nuzha', 'honghaier']]

这一点也不惊讶,接下来,就是见证奇迹的时刻:

wukongs[-1].append('houzi')

print(wukongs)

print(monkeys)

当我们从 wukongs的最后一个元素:它也是一个 list,添加一个动物: houzi 时,我们只向 wukongs 添加了一个动物,此时打印它,不惊讶,但是打印 monkeys ,发现它也有了 houzi

['jone', 'yone', 'mary', ['nuzha', 'honghaier', 'houzi']]['jone', 'yone', 'mary', ['nuzha', 'honghaier', 'houzi']]

这就是浅复制,当一个 list 里的某个元素是个对象,比如 list, tuple, dict 及自建类,如果执行copy(),这个元素只是指针值的复制,不会递归复制它的内存。因此,将会引起上面的现象,因为都是同一个内存地址的两次引用。

"C++, Java, Python中的浅复制举例分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

接下来 元素 动物 问题 分析 内存 内容 再次 只是 对象 就是 更多 知识 惊讶 实用 成功 学有所成 困境 地址 奇迹 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 常用的数据库访问技术 带gpu的服务器 平安企业网络安全保险 网络安全怎么设计 4核服务器是什么概念 合肥易娱网络技术 北京四月星空网络技术有限公 图书馆如何使用数据库 网络安全手抄报三年级字少 vivi手机微信无法连接服务器 暗网数据库下载 如何巡察网络安全方面问题 检察官走进校园宣传网络安全知识 进销存资料保存到数据库 怎么读取阿里云数据库 数字媒体软件开发哪个方向好 花都网络数据库维护找哪家 网络安全心得体会50字小学生 java为什么要学数据库 广联达加密锁网络服务器怎么卸载 常用的数据库访问技术 软件开发增值税有减免 速8酒店里的网络安全吗 保密工作网络安全 数据库应用系统最基本的资源库是 门票预约数据库系统 西门子软件开发岗位咋样 sqlserver数据库实时备份 软件开发风险及措施 网络安全协警需要打字吗
0