深拷贝和浅拷贝

Posted 管控念头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深拷贝和浅拷贝相关的知识,希望对你有一定的参考价值。

import copy
# 深拷贝:会连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象
# 浅拷贝:不拷贝子对象的内容,只是拷贝子对象的引用

# a = [1, 2, [3, 4]]
# b = a
# print(id(a))
# print(id(b))
# a[2][0] = 4
# print(a)
# print(b)

# c = copy.copy(a) # 浅拷贝
# print(id(c))
# a[0] = 2
# print(c)
# a[2][0] = 4 # 对源对象的子对象进行修改
# print(c) # c列表中的子对象也跟着发生了变化

# d = copy.deepcopy(a) # 深拷贝
# print(id(d))
# a[0] = 2
# print(d)
# a[2][0] = 4 # 对源对象的子对象进行修改
# print(d) # d列表中的子对象没有发生变化

 

以上是关于深拷贝和浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章

学习:类和对象——深拷贝和浅拷贝

深拷贝和浅拷贝

Python高级详解 深拷贝和浅拷贝

Python高级详解 深拷贝和浅拷贝

如何实现数组深拷贝和浅拷贝?

深拷贝和浅拷贝的区别?