首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >浅拷贝、深拷贝和正常作业到底有什么区别?

浅拷贝、深拷贝和正常作业到底有什么区别?

提问于 2018-03-27 23:08:02
回答 2关注 0查看 259
代码语言:txt
AI代码解释
复制
import copy

a=”deepak”
b=1,2,3,4
c=[1,2,3,4]
d={1:10,2:20,3:30}

a1=copy.copy(a)
b1=copy.copy(b)
c1=copy.copy(c)
d1=copy.copy(d)


print "immutable - id(a)==id(a1)",id(a)==id(a1)
print "immutable   - id(b)==id(b1)",id(b)==id(b1)
print "mutable - id(c)==id(c1)",id(c)==id(c1)
print "mutable   - id(d)==id(d1)",id(d)==id(d1)

我得到以下结果-

代码语言:txt
AI代码解释
复制
immutable - id(a)==id(a1) True
immutable   - id(b)==id(b1) True
mutable - id(c)==id(c1) False
mutable   - id(d)==id(d1) False

如果我做深度复制-

代码语言:txt
AI代码解释
复制
a1=copy.deepcopy(a)
b1=copy.deepcopy(b)
c1=copy.deepcopy(c)
d1=copy.deepcopy(d)

结果是一样的-

代码语言:txt
AI代码解释
复制
immutable - id(a)==id(a1) True
immutable   - id(b)==id(b1) True
mutable - id(c)==id(c1) False
mutable   - id(d)==id(d1) False

如果我从事外派工作-

代码语言:txt
AI代码解释
复制
a1=a
b1=b
c1=c
d1=d

结果是-

代码语言:txt
AI代码解释
复制
immutable - id(a)==id(a1) True
immutable   - id(b)==id(b1) True
mutable - id(c)==id(c1) True
mutable   - id(d)==id(d1) True

有人能解释一下是什么让拷贝之间有区别吗?它是与可变的、不变的对象有关的东西吗?如果是的话,你能给我解释一下吗?

回答 1

Techeek

发布于 2017-09-05 02:20:02

道理我懂,每个字我都认识,但是我是在想不到你问了个啥,你能来解答下你问了个啥吗?

和开发者交流更多问题细节吧,去 写回答
相关文章
微信为什么不丢消息?
上一章和大家分享了《http如何像tcp一样实时的收消息?》, 本章来聊一聊即时通讯(Instant Messaging,后简称im)消息的可靠投递。 一、报文类型 im的客户端与服务器通过发送报文(
架构师之路
2018/03/01
3.6K0
微信为什么不丢消息?
你知道关闭页面时怎么向后台发送消息吗?
这两天碰到一个需求:在用户刷新页面或者关闭页面的时候,前端要给后台发一条请求,释放该页面的授权占用。
编程三昧
2021/08/16
1K0
你知道关闭页面时怎么向后台发送消息吗?
为什么不要在 Linux 上只运行开源软件?
迁移到 Linux 平台并不是一个非此即彼的提议。Linux 作为一个灵活开放的计算平台为用户在软件选择上提供了更多的选项。
用户2664798
2021/09/09
1.6K0
RabbitMq消息发送
如果要发送一个消息,可以使用channel类的basicPublish方法参考如下,其中在rabbitmqTemplate中封装的方式是:
写一点笔记
2022/08/11
8830
RabbitMq消息发送
如何关闭或启动mysql服务器_MySQL运行
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
9.1K0
如何关闭或启动mysql服务器_MySQL运行
udp发送广播消息
import socket if __name__ == '__main__': # 创建udpsocket udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 设置socket选项, 开启发送广播消息的功能 # 1. SOL_SOCKET:当前socket # 2. SO_BROADCAST: 广播选项 # 3. True:开启发送广播消息功能 udp_socket.set
汪凡
2019/03/01
2.7K0
RabbitMQ延迟消息发送
典型的场景有微信、支付宝等第三方支付回调接口,会在用户支付后3秒、5秒、30秒等等时间后向应用服务器发送回调请求,确保应用服务器可以正确收到消息。
兜兜毛毛
2019/10/23
2.7K0
RabbitMQ延迟消息发送
【RocketMQ】发送事务消息
事务消息:提供类似XA或Open XA的分布式事务功能,通过事务消息能达到分布式事务的最终一致。
凯哥Java
2022/12/16
1.2K0
【RocketMQ】发送事务消息
环信发送消息
特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!
收心
2022/01/19
1.3K0
消息中间件—RocketMQ消息发送
摘要:使用客户端发送一条消息很Easy,在这背后RocketMQ完成了怎么样的操作呢? 大道至简,消息队列可以简单概括为:“一发一存一收”,在这三个过程中消息发送最为简单,也比较容易入手,适合初中阶童鞋作为MQ研究和学习的切入点。因此,本篇主要从一条消息发送为切入点,详细阐述在RocketMQ这款分布式消息队列中发送一条普通消息的大致流程和细节。在阅读本篇之前希望读者能够先仔细读下关于RocketMQ分布式消息队列Remoting通信模块的两篇文章: (1)消息中间件—RocketMQ的RPC通信(一) (2)消息中间件—RocketMQ的RPC通信(二)
用户2991389
2018/09/05
2.5K0
消息中间件—RocketMQ消息发送
为什么一个容器推荐只运行一个应用
容器技术为我们的应用部署带来了很大的便捷性,让我们更专注于程序的开发。但有时候由于我们对容器的理解不够深入,误把容器当成虚拟机使用,便会出现以下一些错误的使用情况:
yaxin
2021/03/05
1.4K0
为什么一个容器推荐只运行一个应用
不聊技术,只聊思考
舒适区难道必定存在于工作很轻松,活的很爽那部分人吗?也不见得,他们的舒适区只是温水煮青蛙。。。
七夜安全博客
2018/12/21
4140
你的消息队列如何保证消息不丢失,且只被消费一次,这篇就教会你
昨天我们将消息队列这个组件加入到了我们的商城系统里,并且通过秒杀这个实际的案例进行了实际演练(秒杀系统每秒上万次下单请求,我们该怎么去设计),知道了它对高并发写流量做削峰填谷,对非关键业务逻辑做异步处理,对不同的业务系统做解耦合。
架构师修炼
2020/07/20
6.9K0
你的消息队列如何保证消息不丢失,且只被消费一次,这篇就教会你
利用飞书BOT发送消息
标题:利用飞书BOT发送消息 作者:cuijianzhe 地址:https://solo.cjzshilong.cn/articles/2020/02/20/1582192919773.html
cuijianzhe
2022/06/14
1.2K0
利用飞书BOT发送消息
Python模拟发送Slack消息
有一个看似很简单的小需求,但是对于一个Python入门的新手来讲还是有些难度的,虽然人家也有写好的代码,但是自己就是不想直接去搬人家的代码,在不懂得时候还装的那么高大上,没办法,就是想自己折腾折腾,别人能写的出来,就说明在某些地方肯定有相关的文章,所以不要怕折腾…
公众号: 云原生生态圈
2021/11/15
1.5K0
Python模拟发送Slack消息
crmeb客服消息发送失败
2.检查是否本服务器已经安装过一套程序。 如果安装多套需要修改端口,详情修改端口 最后重启workerman
西里国际站
2023/04/19
1K0
crmeb客服消息发送失败
kafka学习二 -发送消息
从源码中我们发现在Sender的run方法中,并没有涉及到append追加操作。因此可以看到源码中,如果消息收集器中的消息收集结果为空或者新的消息批次已经创建好,进行sender唤醒,执行wakeup操作的,唤醒Sender线程的。因此可以看到核心代码就是append和sender线程唤醒启动,最终将发送的结果进行返回:
路行的亚洲
2020/09/29
2.3K0
kafka学习二 -发送消息
Python之Rabbitmq发送消息
Rabbitmq是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
Wu_Candy
2022/07/04
1.1K0
Python之Rabbitmq发送消息
捋明白 RabbitMQ 中的权限系统,再也不担心消息发送失败了!
不管我们是通过网页还是通过命令行工具创建用户对象,刚创建好的用户对象都是没法直接使用的,需要我们首先把这个用户置于某一个 vhost 之下,然后再赋予其权限,有了权限,这个用户才可以正常使用。
江南一点雨
2021/12/09
1.1K0
捋明白 RabbitMQ 中的权限系统,再也不担心消息发送失败了!
点击加载更多

相似问题

断网以后发送消息为什么接受不到IM消息,如何重新发送发送失败的消息?

1843

运行了main。go 以后怎么退出服务器,不会关闭或停止运行程序?

068

为什么我关了远程终端以后, 我运行的程序也随之关闭了?

12K

getMessageList调用只返回发送消息怎么回事?

1167

两个用户同时发消息,im只发送一条消息,另一条消息不发送?

0168
相关问答用户
自由工作者
CVM专项擅长1个领域
腾讯科技(深圳)有限公司 | 高级工程师
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档