Python中深浅拷贝 垃圾回收与 super继承(六)

深拷贝,浅拷贝 与引用三者的区别

import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy.copy(a) #对象拷贝,浅拷贝 d = copy.deepcopy(a) #对象拷贝,深拷贝 a.append(5) #修改对象a a[4].append('c') #修改对象a中的['a', 'b']数组对象 print('a = ', a) print( 'b = ', b) print( 'c = ', c) print('d = ', d) 输出结果: a = [1, 2, 3, 4, ['a', 'b', 'c'], 5] #a执行两次值追加操作 b = [1, 2, 3, 4, ['a', 'b', 'c'], 5] #赋值是对象的引用,b指向仍然是a,因此与a内容保持一致 c = [1, 2, 3, 4, ['a', 'b', 'c']] #对象的浅拷贝外部list重新生成新的空间,但是嵌套数组的内存地址不变 d = [1, 2, 3, 4, ['a', 'b']] #深拷贝是所有的数组都新生成一个内存空间,与原来的脱离关系

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgfpy.html