摘要:深拷贝和浅拷贝原始对象赋值,传对象的引用对象拷贝,浅拷贝对象拷贝,深拷贝修改对象修改对象中的数组对象
深拷贝和浅拷贝
import copy a = [1, 2, 3, 4, ["a", "b"]] #原始对象 b = a #赋值,传对象的引用 c = copy.copy(a) #对象拷贝,浅拷贝 d = copy.deepcopy(a) #对象拷贝,深拷贝 a.append(5) #修改对象a a[4].append("c") #修改对象a中的["a", "b"]数组对象 print "a = ", a print "b = ", b print "c = ", c print "d = ", d
#output: 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"]]
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38548.html
摘要:之前关于的作用域赋值参数传递,我们接连谈了几篇文章全菊变量和菊部变量关于函数参数传递,人都错了可变对象与不可变对象今天我们依然要就相关话题继续下去。这是由于它们是不可变对象,不存在被修改的可能,所以拷贝和赋值是一样的。 之前关于 Python 的作用域、赋值、参数传递,我们接连谈了几篇文章: 全菊变量和菊部变量 关于函数参数传递,80%人都错了 可变对象与不可变对象 今天我们依然要...
摘要:引用数据类型名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值,我们以上面浅拷贝的例子画个图当进行拷贝时,其实复制的是的引用地址,而并非堆里面的值。 如何区分深拷贝与浅拷贝? 简单来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。 浅拷贝例子: var a=[0,1...
摘要:中的深拷贝与浅拷贝说到深浅拷贝的时候就不得不说一下中的变量类型了基本类型按值存放在栈内存中的简单数据段可以直接访问引用类型存放在堆内存中的对象变量保存的是一个指向存放数据位置的指针访问引用类型的值时首先从栈中获取到存放该数据位置的指针然后再 JS中的深拷贝与浅拷贝 说到深浅拷贝的时候就不得不说一下JS中的变量类型了: 基本类型: undefined、null、boolean、numb...
摘要:期深拷贝与浅拷贝的区别如何实现一个深拷贝在回答这个问题前,我们先来回顾一下中两大数据类型基本类型引用类型基本类型基本类型就是值类型存放在栈内存中的简单数据段,数据大小确定,内存空间大小可以分配引用类型引用类型存放在堆内存中的对象,变量实际保 20190311期 深拷贝与浅拷贝的区别?如何实现一个深拷贝 在回答这个问题前,我们先来回顾一下JS中两大数据类型 基本类型 Undefined...
阅读 2033·2023-05-11 16:55
阅读 3488·2021-08-10 09:43
阅读 2588·2019-08-30 15:44
阅读 2416·2019-08-29 16:39
阅读 564·2019-08-29 13:46
阅读 1985·2019-08-29 13:29
阅读 891·2019-08-29 13:05
阅读 631·2019-08-26 13:51