python的深copy和浅copy

浅copy得到的新对象的内部元素仍旧指向原来的内存空间,对内部元素的修改会影响到原对象
深copy得到的新对象的内部元素也是全新开辟了内存空间的,对内部元素的修改不会影响原对象

import copy

a=object()
b=object()
x=[a,b]

print(x)
#[<object object at 0x00000000008BF1A0>, <object object at 0x00000000008BF1B0>]

for z in x.copy():
    print(z)
# 结果:
# <object object at 0x00000000008BF1A0>
# <object object at 0x00000000008BF1B0>

for z in copy.deepcopy(x):
    print(z)
# 结果:
# <object object at 0x00000000008BF1C0>
# <object object at 0x00000000008BF1D0>

猜你喜欢

转载自blog.csdn.net/jewely/article/details/81388944