美文网首页
深拷贝和浅拷贝的区别是什么

深拷贝和浅拷贝的区别是什么

作者: Vk_醉曦风 | 来源:发表于2020-07-18 11:04 被阅读0次

    深拷贝、浅拷贝(copy.copy copy.deepcopy)

    深拷贝是将对象本身复制给另一个对象。这意味着如果对对象的副本进行更改时不会影响原对象. 在 Python 中, 我们使用 deepcopy()函数进行深拷贝.

    深拷贝是对一个对象的所有层次的拷贝(本质上递归浅拷贝),开辟一个新的空间。分片表达式进行的拷贝是深拷贝,字典的copy是深拷贝.

    浅拷贝是将对象的引用复制给另一个对象。因此,如果我们在副本中进行更改,则会影响原对象. 使用 copy()函数进行浅拷贝.
    浅拷贝是对一个对象的顶层拷贝, 只拷贝引用, 没有拷贝内容 .

    对可变数据类型(列表、字典、集合)进行浅拷贝,只是指向引用地址,不会开辟新的空间

    对不可变数据类型(数字、字符串、元组)进行浅拷贝,会开辟一个新的空间(仅仅是最顶层开辟了新的空间,里层的元素地址还是一样的)

    浅拷贝后,改变原始对象中可变类型的元素的值,拷贝对象的值也随之改变。改变原始对象中不可变类型元素的值,拷贝对象的值也不会改变

    相关文章

      网友评论

          本文标题:深拷贝和浅拷贝的区别是什么

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