博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的赋值、深拷贝、浅拷贝
阅读量:4664 次
发布时间:2019-06-09

本文共 401 字,大约阅读时间需要 1 分钟。

a=b

a和b两个对象地址相同

a和b两个对象的子对象地址相同

a=copy.copy(b)

a和b两个对象地址不同

a和b两个对象的子对象地址相同

a=copy.deepcopy(b)

a和b两个对象地址不同

a和b两个对象的子对象地址不同

 

可以通过id(a) 来判断a地址,通过[id(x) for x in a]来判断a的子对象地址。

 

会发现:

a=b创建的对象,a和b以及a的子对象和b的子对象都是一样的,a或b的更改会彼此影响。两者的引用地址的一样的。

a=copy.copy(b),a只是拷贝了b的引用,创建了一个新的对象,但是两者的子对象是一样的。子对象的更改会创建新的对象,不会互相影响。

a=copy.deepcopy(b),完全是两个对象,同时也创建了新的子对象,两者互不影响。

转载于:https://www.cnblogs.com/genezhao/p/6917692.html

你可能感兴趣的文章
多线程优化 锁升级
查看>>
Linux文件系统
查看>>
安卓APP测试验证点总结
查看>>
idea启动崩溃问题
查看>>
python3 异常处理
查看>>
hdu2102(广搜)
查看>>
java.security.NoSuchAlgorithmException: SHA1PRNG SecureRandom not available
查看>>
[SinGuLaRiTy] 2017 百度之星程序设计大赛 复赛
查看>>
hard-negative mining 及伪代码实现
查看>>
JS框架_(Laydate.js)简单实现日期日历
查看>>
19. Remove Nth Node From End of List
查看>>
Struts2(三):新建Struts2工程
查看>>
数据库调优过程(一):SqlServer批量复制(bcp)[C#SqlBulkCopy]性能极低问题
查看>>
AS中jar包和aar包区别及导入导出
查看>>
Android系统备忘1
查看>>
tomcat配置
查看>>
C语言学习之路
查看>>
值-结果参数
查看>>
[Excel] C# ExcelHelper操作类 (转载)
查看>>
使用jsoup进行网页内容抓取
查看>>