a – 6 – copy


import copy
                1 copy 拷贝
                2 引用拷贝   =
                3 深拷贝    deepcopy
                4 浅拷贝    copy
copy 模块
    copy.deepcopy()
                1 深拷贝,全部拷贝
                2 def deepcopy(x, memo=None, _nil=[])
                3 Deep copy operation on arbitrary Python objects.

    copy.copy()
                1 浅拷贝,只拷贝第一层,其他是引用拷贝
                2 def copy(x)
                3 Shallow copy operation on arbitrary Python objects.

    $Exp:不可变类型
                $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                $   import copy
                $   a=(1,2)
                $   b=a
                $   c=copy.deepcopy(a)
                $   d=copy.copy(a)
                $   print(id(a)) # 2417465096200
                $   print(id(b)) # 2417465096200   引用  相同
                $   print(id(c)) # 2417465096200   深    相同
                $   print(id(d)) # 2417465096200   浅    相同
                $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    $Exp:可变类型
                $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                $   import copy
                $   a=[1,2]
                $   b=a
                $   c=copy.deepcopy(a)
                $   d=copy.copy(a)
                $   print(id(a)) # 1701539370248
                $   print(id(b)) # 1701539370248   引用  相同
                $   print(id(c)) # 1701539323592   深    不同
                $   print(id(d)) # 1701539494344   浅    不同
                $#########################################################
                $   import copy
                $   a=[1]               # a: [1]
                $   b=[a,a]             # b: [[1],[1]]
                $   c=copy.copy(b)      # c: [[1],[1]] 浅拷贝,只考虑第一层
                $   a[0]=55
                $   print(b)            # [[55], [55]]
                $   print(c)            # [[55], [55]]
                $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$