您好,欢迎来到华拓网。
搜索
您的当前位置:首页Python中“=”和深浅拷贝区别

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

来源:华拓网

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

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

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

拷贝 : 内存中存在两个

浅拷贝

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

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


    浅拷贝只拷贝内存的地址

深拷贝

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


深拷贝

Copyright © 2019- huatuo3.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务