python的深浅拷贝,又忘记了,再复习一次。

  • 浅拷贝(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]]
    

     

  • 希望不要再忘了。。

python的深浅拷贝,又忘记了,再复习一次。

上一篇:SpringMVC配置视图解析器后对于请求地址不使用视图解析器解决办法


下一篇:Java并发13:并发三特性-原子性定义、原子性问题与原子性保证技术