文章详情页
Python直接赋值及深浅拷贝原理详解
浏览:96日期:2022-07-12 10:15:22
定义
直接赋值:就是对象的引用(别名) 浅拷贝(copy):拷贝父对象,不拷贝对象内部的子对象 深拷贝(deepcopy):copy模块的deepcopy方法,完全拷贝父对象及其子对象解释
b = a: 赋值引用,a和b都指向同一个对象

b = a.copy(): 浅拷贝,a和b都是一个独立的对象,但它们的子对象是指向统一对象(是引用)

b = copy.deepcopy(a): 深拷贝,a和b完全拷贝了父对象及其子对象,两者是完全独立的

示例
以下是直接赋值、浅拷贝和深拷贝之对比
import copya = [1, 2, 3, 4, [’a’, ’b’]] #原始对象b = a#直接赋值,原始对象的引用c = copy.copy(a) #浅拷贝d = copy.deepcopy(a) #深拷贝a.append(5) #修改对象aa[4].append(’c’) #修改对象a中的[’a’, ’b’]列表对象print( ’a = ’, a )print( ’b = ’, b )print( ’c = ’, c )print( ’d = ’, d )
以上实例执行输出结果为:
a = [1, 2, 3, 4, [’a’, ’b’, ’c’], 5]b = [1, 2, 3, 4, [’a’, ’b’, ’c’], 5]c = [1, 2, 3, 4, [’a’, ’b’, ’c’]]d = [1, 2, 3, 4, [’a’, ’b’]]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。
相关文章:
1. Python中的min及返回最小值索引的操作2. Python使用Socket实现简单聊天程序3. Java之JSP教程九大内置对象详解(下篇)4. Python操作MongoDb数据库流程详解5. Python+Appium实现自动抢微信红包6. js中textContent、innerText和innerHTML的用法以及区别7. Vue中强制组件重新渲染的正确方法8. Python常用base64 md5 aes des crc32加密解密方法汇总9. springboot使用CommandLineRunner解决项目启动时初始化资源的操作10. Android如何用自定义View实现雪花效果
排行榜

网公网安备