浅述python中深浅拷贝原理
作者:刺激乐天派 时间:2022-03-05 06:29:36
前言
在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
标签:python,深浅拷贝
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python随手笔记之标准类型内建函数
2022-10-23 11:00:45
英文版面设计的8个禁忌
2009-10-14 20:42:00
![](https://img.aspxhome.com/file/UploadPic/200910/14/01-84s.jpg)
Python QQBot库的QQ聊天机器人
2022-03-18 23:29:30
![](https://img.aspxhome.com/file/2023/0/64720_0s.jpg)
Python实战之单词打卡统计
2023-06-06 18:22:17
![](https://img.aspxhome.com/file/2023/0/77680_0s.png)
DW MX新功能试用:嵌套模板
2008-02-03 11:35:00
![](https://img.aspxhome.com/file/UploadPic/20072/200723113533349s.jpg)
关于MySQL编码问题的经验总结
2007-08-23 16:10:00
php中替换字符串函数strtr()和str_repalce()的用法与区别
2023-11-17 06:12:53
实现页面中按钮刷新的N种方法
2007-02-03 11:06:00
Access 2007简易入门手册
2008-12-04 13:12:00
![](https://img.aspxhome.com/file/UploadPic/200812/20081212115347643.jpg)
Pytorch实现List Tensor转Tensor,reshape拼接等操作
2021-06-06 19:58:51
![](https://img.aspxhome.com/file/2023/6/80786_0s.png)
Python使用enumerate获取迭代元素下标
2023-03-05 01:46:31
删除PHP数组中的重复元素的实现代码
2023-06-06 21:19:46
![](https://img.aspxhome.com/file/2023/0/55470_0s.png)
ASP所有的Session变量获取实现代码
2011-03-11 10:44:00
用 Quick Click 练习鼠标定位
2013-07-13 04:47:55
一个完整的PHP类包含的七种语法说明
2023-11-16 13:02:07
php生成curl命令行的方法
2023-07-23 22:19:42
Anaconda下Python中GDAL模块的下载与安装过程
2022-08-30 04:49:54
![](https://img.aspxhome.com/file/2023/8/82928_0s.png)
Python中获取图片的大小问题
2022-11-08 21:43:23
pycharm设置python文件模板信息过程图解
2023-03-21 14:46:22
![](https://img.aspxhome.com/file/2023/0/81620_0s.png)
Python Matplotlib基本用法详解
2022-07-30 15:52:27
![](https://img.aspxhome.com/file/2023/7/79437_0s.png)