美文网首页Python
Python中“=”和深浅拷贝区别

Python中“=”和深浅拷贝区别

作者: 戏之地 | 来源:发表于2016-11-30 23:47 被阅读11次

    = 赋值:内存中只存在一个

    a1指向了内存,a1相当于对内存中该对象的引用。
    直接把该引用赋值对b1,相当于b1直接指向内存对象

    a1 = [1, 2, 3, ["a", "b"]]
    b1 = a1
    

    拷贝 : 内存中存在两个

    浅拷贝

    浅拷贝只拷贝原本各元素在内存中的地址:

    • 当子元素为可变对象时,如列表。则原副本皆可修改
    • 当子元素为不可变对象时,如字符串。则原副本的修改皆会让其放弃原来指向的内存地址,指向其他


      浅拷贝只拷贝内存的地址

    深拷贝

    深拷贝对于不可变元素,和浅拷贝相同,拷贝引用
    对于可变元素,深拷贝和复制一份,原副本对可变元素的修改皆不会影响另外一个


    深拷贝

    相关文章

      网友评论

        本文标题:Python中“=”和深浅拷贝区别

        本文链接:https://www.haomeiwen.com/subject/bgptmttx.html