• 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。他们的子对象还是指向统一对象(是引用)

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

  • >>> a=[1,[1,2,3]]
    >>> b=a.copy()
    >>> b
    [1, [1, 2, 3]]
    >>> a
    [1, [1, 2, 3]]
    

    此时,b是a的浅拷贝。

  • 改变a[1],(一个子对象[1,2,3]),发现b的内容也发生了改变,因为浅拷贝,二者的子对象仍指向同一个。
  • >>> a[1].append(4)
    >>> a
    [1, [1, 2, 3, 4]]
    >>> b
    [1, [1, 2, 3, 4]]
    

     

  • 深拷贝,看似和浅拷贝相同
  • 改变了a的子对象后,发现b的子对象未发生变化。即a和b的子对象,相互独立。
  • >>> a[1].append(5)
    >>> a
    [2, [1, 2, 3, 4, 5]]
    >>> b
    [2, [1, 2, 3, 4]]
    

     

  • 希望不要再忘了。。