美文网首页人生苦短,我用python
直接赋值,深拷贝,浅拷贝

直接赋值,深拷贝,浅拷贝

作者: Ginta | 来源:发表于2019-02-09 22:11 被阅读0次

a = [1,2,3,4,[1,2]]

直接赋值

直接赋值就是新建了一个对象的引用,两个引用指向同一个对象,比如 b=a
首先创建对象a,指向了一块空间,然后又创建了对象b,和a指向同一块空间,因此无论修改a还是b,另一个对象也同样会被修改。

a.append(4)
# a [1, 2, 3, 4, [1, 2], 4]
# b [1, 2, 3, 4, [1, 2], 4]

浅拷贝

浅拷贝也是新建了一个对象,c = copy.copy(a),不一样的是a和b的父级指向不同的地址,子对象却是引用的同一块地址

a[4].append(3)
# a [1, 2, 3, 4, [1, 2, 3], 4]
# b [1, 2, 3, 4, [1, 2, 3], 4]
# c [1, 2, 3, 4, [1, 2, 3], 4]
a.append(5)
# a [1, 2, 3, 4, [1, 2, 3], 4, 5]
# b [1, 2, 3, 4, [1, 2, 3], 4, 5]
# c [1, 2, 3, 4, [1, 2, 3], 4]

深拷贝

深拷贝就是把父级对象和子级对象完全拷贝了,和原来的对象都没有什么关系,改变任何一个对象都不会影响到另一个。

相关文章

  • 简介深浅拷贝

    深浅拷贝 python 直接赋值,浅拷贝和深拷贝 直接赋值 其实就是对象的引用 (可以理解成浅拷贝) 浅拷贝: 拷...

  • 浅拷贝和深拷贝

    直接赋值 浅拷贝(影子克隆) 深拷贝 应用场景 参考文章

  • 直接赋值,深拷贝,浅拷贝

    a = [1,2,3,4,[1,2]] 直接赋值 直接赋值就是新建了一个对象的引用,两个引用指向同一个对象,比如 ...

  • js浅拷贝和深拷贝

    1⃣️ 浅拷贝 直接赋值 Object.assign 2⃣️ 深拷贝 JSON.stringify & JSON....

  • python的浅拷贝和深拷贝

    对于不可变类型,浅拷贝和深拷贝没有区别 对于不可变类型 赋值 浅拷贝 深拷贝

  • 深拷贝 浅拷贝

    深入认识深拷贝 浅拷贝 公共方法 // 深拷贝 浅拷贝 对于基本类型来说 对于赋值操作 就是 深拷贝 因为值...

  • Python中的引用赋值,深拷贝,浅拷贝

    摘要:Python,引用赋值,深拷贝,浅拷贝 总结一下Python中的变量的引用赋值,深拷贝和浅拷贝,先上结论 赋...

  • 深浅拷贝理解

    先看最简单的赋值 (a=b) 浅拷贝 补充说明浅拷贝 如图 深拷贝

  • 直接赋值、浅拷贝和深拷贝

    直接赋值 平时最常用的方式,在代码中的体现是Persona = new Person();Person b = a...

  • 赋值 浅拷贝 深拷贝

    赋值、浅拷贝、深拷贝赋值就是完全引用原来的对象通俗的理解,浅就是外面,深就是里面。浅拷贝的意思就是只拷贝外面的一层...

网友评论

    本文标题:直接赋值,深拷贝,浅拷贝

    本文链接:https://www.haomeiwen.com/subject/szizsqtx.html