Python 深复制和浅复制

python中赋值是引用传递——>例子中的 c

复制要使用copy
浅复制(浅拷贝)是复制对象本身,并不对对象内部的子对象进行复制。——>例子中的b
深复制(深拷贝)将对象的本身以及子对象全部拷贝——>例子中的d


#初始对象
a = [1,2,3,4,5,6,[0,0,0,0]]

#b 进行浅赋值
b = copy.copy(a)
#c 直接引用a
c = a
#d进行深度复制
d = copy.deepcopy(a)

"""
    a 中添加新的元素
    受影响的有c
"""
a.append(7)
"""
    a的子对象中添加新的元素
    受影响的有 b ,c
"""
a[6].append(1)

print(a)

print(b)

print(c)

print(d)


"""
[1, 2, 3, 4, 5, 6, [0, 0, 0, 0, 1], 7]
[1, 2, 3, 4, 5, 6, [0, 0, 0, 0, 1]]
[1, 2, 3, 4, 5, 6, [0, 0, 0, 0, 1], 7]
[1, 2, 3, 4, 5, 6, [0, 0, 0, 0]]
"""

猜你喜欢

转载自blog.csdn.net/king_giji/article/details/80426167