Python中值的拷贝可分为直接赋值,浅拷贝与深拷贝
直接赋值:即为对象的引用,赋值前后的对象均指向同一对象
浅拷贝:拷贝父对象,拷贝前与拷贝后的对象均为独立的对象,但是他们的子对象都仍然指向同一对象
深拷贝:完全拷贝父对象及子对象,拷贝前与拷贝后的对象均独立存在
演示代码如下
import copy
a = [1, 2, 3, [4, 5, 6]]
b = a # 对象的引用
c = a.copy() # 浅拷贝
d = copy.deepcopy(a) # 深拷贝
# 改变列表a
a.append(8)
a[3].append(7)
print(f"a: {a}")
print(f"b: {b}")
print(f"c: {c}")
print(f"d: {d}")
# >>>
# a: [1, 2, 3, [4, 5, 6, 7], 8]
# b: [1, 2, 3, [4, 5, 6, 7], 8]
# c: [1, 2, 3, [4, 5, 6, 7]]
# d: [1, 2, 3, [4, 5, 6]]
标签:Python,对象,print,拷贝,copy,赋值
From: https://www.cnblogs.com/ToryRegulus/p/18241722