当前位置:   article > 正文

python基础——类(赋值,深拷贝,浅拷贝的区别)_python 赋值,浅拷贝,深拷贝的区别

python 赋值,浅拷贝,深拷贝的区别

赋值,深拷贝与浅拷贝的不同

赋值是用一个其他的变量名替代原来的对象,但指向的地址没有变化

浅拷贝指的是 只拷贝当前对象,但拷贝的对象与被拷贝的对象公用同一个子对象(即公用的子对象的地址相同)。

深拷贝指的是 不仅当前对象进行拷贝,被拷贝对象的子对象同样被拷贝(不公用子对象)

赋值:

a=1
print(id(a))
b=a
print(id(b))

浅拷贝的使用方法

import copy

新对象=copy.copy(对象)

深拷贝的使用方法

新对象=copy.deepcopy(对象)

代码演示:

  1. #赋值
  2. a=1
  3. print(id(a))
  4. b=a
  5. print(id(b))

 

 

  1. #浅拷贝 python拷贝一般都是浅拷贝 拷贝时对象,包含的子对象内容不拷贝,因此源对象与拷贝对象会引用同一个子对象
  2. class cpu:
  3. pass
  4. class disk:
  5. pass
  6. class Computer(cpu,disk):
  7. def __init__(self,cpu,disk):
  8. super().__init__()
  9. self.cpu=cpu
  10. self.disk=disk
  11. #浅拷贝
  12. cpu1=cpu()
  13. disk1=disk()
  14. computer=Computer(cpu1,disk1)
  15. import copy
  16. computer2=copy.copy(computer)
  17. print(computer,computer.cpu)
  18. print(computer2,computer2.cpu)

  1. cpu1=cpu()
  2. disk1=disk()
  3. computer=Computer(cpu1,disk1)
  4. import copy
  5. computer2=copy.deepcopy(computer)
  6. print(computer2,computer2.cpu)
  7. print(computer,computer.cpu)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/71524
推荐阅读
相关标签
  

闽ICP备14008679号