python深拷贝,浅拷贝,赋值引用

1.在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用

(1)直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变

# -*- coding: utf-8 -*-if __name__ == '__main__':b = [1, 2, 3]a = bprint(a)print(b)a.append(4)print(a)print(b)

在这里插入图片描述
(2)copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变

# -*- coding: utf-8 -*-
import copyif __name__ == '__main__':b = [1, 2, ["hello", "word"]]a = copy.copy(b)print(a)print(b)a.append(4)print(a)print(b)b[2].append("鸿蒙2.0")print(a)print(b)

运行结果:

"C:\Program Files\Python38\python.exe" E:/PythonSourceCode/test/main.py
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word'], 4]
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word', '鸿蒙2.0'], 4]       这里数据变了
[1, 2, ['hello', 'word', '鸿蒙2.0']]

(3)深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变

# -*- coding: utf-8 -*-
import copyif __name__ == '__main__':b = [1, 2, ["hello", "word"]]a = copy.deepcopy(b)print(a)print(b)b[2].append("鸿蒙2.0")print(a)print(b)

运行结果:

"C:\Program Files\Python38\python.exe" E:/PythonSourceCode/test/main.py
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word']]
[1, 2, ['hello', 'word', '鸿蒙2.0']]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pjtool用到的数据库----oracle范畴

PL/SQL Developer 专门面向Oracle数据库存储程序单元的开发 PL/SQL:过程化SQL语言转载于:https://www.cnblogs.com/ejllen/p/3684890.html

如何让mysql索引更快一点

后端开发,公众号内容包括但不限于 python、mysql、数据结构和算法、网络协议、Linux。技术人怎能只有技术和代码,如果你对投资理财、保险,英语学习、读书写作有兴趣,都欢迎来公众号【谭某人】与我交流,你总会有些收获。…

将本地项目上传到码云(gitee)远程仓库

前提条件: 1、本地电脑上已经安装了 git客户端,未安装的,具体安装过程可以参考此安装链接:https://blog.csdn.net/ezreal_tao/article/details/81609883 2、用户已经在gitee码云上注册完成 具体操作步骤: 1、登录码云…

单线程的Redis为什么却能支撑高并发?

作者:Draveness原文链接:draveness.me/redis-io-multiplexing最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净…

在Windows10上安装WSL使用binwalk命令

Windows 10 推出的WSL 功能可以协助我们直接使用binwalk 分析Windows 内的文件 一、WSL 准备 1、打开控制面板→应用→程序和功能→启动或关闭Windows 功能,打开“适用于Linux 的Windows 子系统”和“虚拟机平台”,随后需要重启。 2、打开Windows 10 自…

最详细的 IDEA调试教程

Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。在Intellij IDEA中使用好Debug&…

centos 修改ip地址

为什么80%的码农都做不了架构师?>>> 查看IP地址 1 登陆连接centos系统,输入 ifconfig 可以查看到当前本机的IP地址信息,如下图 临时设置IP地址 1 如本机为例,上面查询IP为1.117,输入 ifconfig eth0 &…

经典面试题:如何保证缓存与数据库的双写一致性?

作者:你是我的海啸地址:http://t.cn/EK64FeP只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?面试题剖析一般来说&#x…

四、华为鸿蒙HarmonyOS应用开发之Java开发下Page Ability生命周期

系统管理或用户操作等行为均会引起Page实例在其生命周期的不同状态之间进行转换。Ability类提供的回调机制能够让Page及时感知外界变化,从而正确地应对状态变化(比如释放资源),这有助于提升应用的性能和稳健性。 Page生命周期回调 Page生命周期的不同状态转换及其对应的回…

写简历的十大误区

作者:Coody地址:my.oschina.net/hooker/blog/3014656在互联网极速膨胀的社会背景下,各行各业涌入互联网的IT民工日益增大。早在2016年,我司发布了Java、Ios工程师的招聘信息,就Java工程师单个岗位而言,日收…

面试官问你MySQL的优化,看这篇文章就够了

作者:zhangqhsegmentfault.com/a/1190000012155267一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。…

六、华为鸿蒙HarmonyOS应用开发之Java开发模式下的不同Page 间实现页面跳转

不同Page 间导航,实现页面跳转 AbilitySlice作为Page的内部单元,以Action的形式对外暴露,因此可以通过配置Intent的Action导航到目标AbilitySlice。Page间的导航可以使用startAbility()或startAbilityForResult()方法,获得返回结…

MySQL 快速创建千万级测试数据

作者:IKNOW本尊链接:http://t.cn/E96Shud背景在进行查询操作的性能测试或者 sql 优化时,我们经常需要在线下环境构建大量的基础数据供我们测试,模拟线上的真实环境。总不能让我去线上去测试吧,会被DBA砍死的创建测试数…

【面试收藏】Redis最全面试题

出自:https://github.com/CyC2018/CS-Notes程序员乔戈里整理一、概述二、数据类型STRINGLISTSETHASHZSET三、数据结构字典跳跃表四、使用场景计数器缓存查找表消息队列会话缓存分布式锁实现其它五、Redis 与 Memcached数据类型数据持久化分布式内存管理机制六、键的…

八、华为鸿蒙HarmonyOS应用开发之Java UI框架、常用TextField组件使用

一、TextField组件 二、TextField组件实例测试 1.新建基于empty ability(Java)手机应用程序的TextField工程。运行出现如下结果 2.在resources->zh.element文件夹下string.json文件修改代码如下: {"string": [{"name": "entry_MainAbility&qu…

面试题:彻底搞懂 Cookie 和 Session

我在做面试官的时候,曾经问过很多朋友这个问题: Cookie 和 Session 有什么区别呢?大部分的面试者应该都可以说上一两句,比如:什么是 Cookie?什么是 Session?两者的区别等。但如果再往深入探讨的…

局域网内Windows允许其他电脑指定IP访问本地mysql-8.0.23数据库

第一步:用ping命令测试两台电脑是否连通 如果两台电脑是连通的请转到第二步,如果是非连通的请进行如下操作: 1、进入控制面板,打开Windows Defender 防火墙,点击高级设置(本人用的是Windows10,其他Windows版本操作类似) 2、在新弹出的页面中点击入站规则,在入站规则中…

经典面试题:聊一聊垃圾回收算法

关于垃圾回收算法的这道面试题,几乎是所有 3 年以上的 Java 面试中必问的题目,甚至有些好一点的公司会在校招时问到面试者。那么本文就系统的讲一下垃圾回收的算法,和 Hotspot 虚拟机执行垃圾回收的一些实现细节,比如安全点和安全…

九、华为鸿蒙HarmonyOS应用开发之Java UI框架、常用Image组件使用

一、Image 二、Image组件实例测试 1.新建基于empty ability(Java)手机应用程序的ImageTest工程。运行出现如下结果 2.在Project窗口,打开“entry > src > main > resources > base > media”,添加4个图片至media文件夹下,以“pic1.jpg”、“pic2.jpg”、…

阿里面试,我挂在了第四轮……

可能每个技术人都有个阿里梦,我也不例外。最近准备跳槽,前一阵子在准备各种面试,也面了几个大厂,包括阿里。是的,最后我挂在了第四轮。这篇文章来总结一下我在阿里四轮的面试经历,希望能对读者有所启发。阿…