• 2 引用 深copy 浅copy


    1. is ==

    总结

    • is 是比较两个引用是否指向了同一个对象(引用比较)。
    • == 是比较两个对象是否相等。
    In [1]: a = [11,22,33]
    
    In [2]: b = [11,22,33]
    
    In [3]: a == b
    Out[3]: True
    
    In [4]: a is b
    Out[4]: False
    
    
    
    In [5]: id(a)
    Out[5]: 140715444902984
    
    In [6]: id(b)
    Out[6]: 140715444891912
    In [7]: a
    Out[7]: [11, 22, 33]
    
    In [8]: b
    Out[8]: [11, 22, 33]
    
    In [9]: c = a
    
    In [10]: c
    Out[10]: [11, 22, 33]
    
    In [11]: id(a)
    Out[11]: 140715444902984
    
    In [12]: id(b)
    Out[12]: 140715444891912
    
    In [13]: id(c)
    Out[13]: 140715444902984
    ### 特殊情况
    
    In [14]: a = 10
    
    In [15]: b = 10
    
    In [16]: a == b
    Out[16]: True
    
    In [17]: a is b
    Out[17]: True
    
    
    
    In [18]: a = 10000
    
    In [19]: b = 10000
    
    In [20]: a is b
    Out[20]: False

    2.深copy 浅copy

    • 深拷贝是对于一个对象所有层次的拷贝(递归)
    • 浅拷贝是对于一个对象的顶层拷贝
    • 通俗的理解是:拷贝了引用,并没有拷贝内容

        

        

    In [33]: a.append(55)
    
    In [34]: a
    Out[34]: [11, 22, 33, 55]
    
    In [35]: b
    Out[35]: [11, 22, 33, 55]
    
    In [36]: c
    Out[36]: [11, 22, 33]

     3.import copy 不同

      1)copy.deepcopy()  一直递归,拷到最底层

      深copy:其实就是重新开辟不同内存,保存和原来的相同信息!和原来的信息,内存没有关系

      2)copy.copy()       浅拷贝对不可变类型和可变类型的copy不同

        对于可变类型,只是copy第一层

        

        对于不可变类型元组,不copy

        

  • 相关阅读:
    测试打印功能
    绘图
    图片验证码
    图片防盗
    图片水印
    surface 译
    ViewManager 译
    WindowId 译
    Display
    LayoutParams
  • 原文地址:https://www.cnblogs.com/venicid/p/7922579.html
Copyright © 2020-2023  润新知