• Python中的浅拷贝和深拷贝


    python中的浅拷贝和深拷贝是经常在面试中遇到的问题。

    • 浅拷贝(copy): 拷贝父对象,不会拷贝对象的内部的子对象
    • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

    一、赋值


    我们先看看赋值的实例

    a = {1:['a']}
    b = a
    a[1].append('b')
    

    很明显,赋值引用,a 和 b 都指向同一个对象。

    二、浅拷贝实例


    import copy
    
    a = {1:['a']}
    b = a.copy()
    a[1].append('b')
    

    可以看到,浅复制不会拷贝字典中的list对象。当我们向a的list中添加值时,b中的也变了。

    三、深拷贝实例:


    import copy
    
    a = {1:['a']}
    b = copy.deepcopy(a)
    a[1].append('b')
    

    可以看到,他们的对象和子对象都是相互独立的,当我们向a的list中添加值时,b不会受影响。

  • 相关阅读:
    JQuery
    Ubuntu18.04
    Ubuntu18.04
    Ubuntu18.04
    Ubuntu18.04
    Cordova
    Android
    Android
    Delphi
    postgresql之 drop & delete & truncate
  • 原文地址:https://www.cnblogs.com/selfcs/p/12610698.html
Copyright © 2020-2023  润新知