对象的引用,浅拷贝和深拷贝的区别(2)

1、对于字符串、数字和没有包含子类对象的元组,浅拷贝和深拷贝,只是把变量的索引指向同一内存地址,并不会新建一个地址

解答:因为字符串、数字、元组都是不可变的,所以无论深浅拷贝,都不会新建内存地址

2、对于一个包含列表的元组,如(10000,200000,300000,[1]),浅拷贝,只是把变量的索引指向同一内存地址,并不会新建一个地址,子类对象的地址也是一样;深拷贝,把父类和子类一起拷贝,并且都新建了一块内存地址

解答:浅拷贝没有新建内存地址,是因为浅拷贝只拷贝了父类对象,也就是只拷贝了第一层,但是因为拷贝的是元组,元组不可变

           深拷贝拷贝了父类和所有子类,元祖本身不可修改,但是里面有list,深copy  list的内存改了

3、对于列表和字典来说,浅拷贝,新建了一个内存地址,子类对象的地址没有改变;深拷贝,把父类和子类一起拷贝,并且都新建了一块内存地址

 

posted @ 2021-04-29 13:04  JYong  阅读(122)  评论(0编辑  收藏  举报