浅述python中深浅拷贝原理
作者:刺激乐天派 发布时间:2022-03-05 06:29:36
标签:python,深浅拷贝
前言
在c++中参数传递有两种形式:值传递和引用传递。这两种方式的区别我不在此说,自行补上,如果你不知道的话。我先上python代码,看完我们总结一下,代码如下:
# copy module import
import copy
# number and string
a = 12
a1 = a
a2 = copy.copy(a)
a3 = copy.deepcopy(a)
# look addr
print("==========number=======")
print(id(a))
print(id(a1))
print(id(a2))
print(id(a3))
s = '12345'
s1 = s
s2 = copy.copy(s)
s3 = copy.deepcopy(s)
# look addr
print("==========String=======")
print(id(s))
print(id(s1))
print(id(s2))
print(id(s3))
# others
target = {
'name': 'ckmike',
'age': 25,
'boxes':[
'LV',
'Prada',
'KUQI'
]
}
target1 = target
target2 = copy.copy(target)
target3 = copy.deepcopy(target)
print("==========dict-1=======")
print(id(target))
print(id(target1))
print(id(target2))
print(id(target3))
print("==========dict-2=======")
print(id(target['boxes']))
print(id(target1['boxes']))
print(id(target2['boxes']))
print(id(target3['boxes']))
输出结果:
==========number=======
10943360
10943360
10943360
10943360
==========String=======
140567123944648
140567123944648
140567123944648
140567123944648
==========dict-1=======
140567124625088
140567124625088
140567124625160
140567123938760
==========dict-2=======
140567099339272
140567099339272
140567099339272
140567099339464
总结:
对于数值、字符串而言,不管是赋值符号还是浅拷贝、深拷贝,都是引用的内存中的同一份值,变量指向同一地址。
对于非数值非字符串而言,浅拷贝只会拷贝对象的第一层,深拷贝则会把所有层都进行拷贝。
来源:http://blog.51cto.com/4837471/2176384
0
投稿
猜你喜欢
- 本文实例为大家分享了微信小程序实现吸顶盒效果的具体代码,供大家参考,具体内容如下html部分 <!-- 列表 -->&
- 【方法一】: 通过setuptools来安装python模块首先下载 http://peak.telecommunity.com/dist/
- 非原创:英文版混乱的标记语言XHTML2/HTML5源文地址:漫画英文版源文地址感谢我的同事Kevin Jaw的翻译。他的博客地址是:Kev
- 前言最近由于在寻找方向上迷失自我,准备了解更多的计算机视觉任务重的模型。看到语义分割任务重Unet一个有意思的模型,我准备来复现一下它。一、
- 在windows操作系统上使用IE作为浏览器时。常常会发生这样的问题:在浏览使用UTF-8编码的网页时,浏览器无法自动侦测(即没有设定“自动
- 很久没有发表文章了,最近一直在研究产品设计标准的问题,之前有发过一篇关于 Axure的教程 ,相信很多人已经学会如何使用,这次我给大家介绍一
- Python 中的 timeit 模块可以用来测试一段代码的执行耗时,如一个变量赋值语句的执行时间,一个函数的运行时间等。timeit 模块
- 废话不多说了,直接给大家贴代码了,具体代码如下所述: var aLi = document.querySelectorAll('.a
- Python中的单元测试我们先来回顾一下Python中的单元测试方法。下面是一个 Python的单元测试简单的例子:假如我们开发
- 本文介绍了asp编程中使用数组的各种方法,并给出了详细的asp实例代码方便大家理解。asp中数组的定义Dim MyArray My
- 本文实例为大家分享了Python深度优先算法生成迷宫,供大家参考,具体内容如下import random #warning: x and y
- 1、何为ansible-playbookplaybook是ansible用于配置,部署,和管理被控节点的剧本,通过playbook的详细描述
- 以下针对Ubuntu系统,Windows系统没有测试过。Ubuntu中默认就安装有Python 2.x和Python 3.x,默认情况下py
- 编写兼容IE和FireFox的脚本确定的件很烦人的事,今日又经历了一次。一、正式表达式问题试图用以下表达式提取中括号“]”后面的内容,连接调
- 在命令行中运行python代码是很常见的,下面介绍如何定义命令后面跟的参数。1 常规用法Python代码中主要使用下面
- 这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql>
- 下面是一些有助于更有效地使用 SQL 事件探查器的提示和技巧。运行的跟踪过多如果 Microsoft? SQL Server? 实例运行得过
- 运行MySQL Server 5.0安装程序“setup.exe”,出现如下界面: 安装向导启动,按“Next”继续:
- Msg 102, Level 15, State 1, Line 3 Incorrect syntax near '+'.
- 仿射密码思路:1、加解密公式:2、构造对应字典:3、代码实现构造字典,建立映射关系:# 构造字典,'A' --> 0