浅拷贝,深拷贝

浅拷贝是对一个对象的顶层拷贝
通俗的理解是:拷贝了对象的引用,然鹅并没有拷贝内容。
一般的
a = 'hello world'
b = a
叫做拷贝了a的对象引用到b

import copy
b = copy.deepcopy(a)
叫做深拷贝
深入一点,假设有
a = [1, 2, 3]
b = [4, 5, 6]
c = [a, b]
d = copy.deepcopy(c)
a.append(9)
print(c):[[1, 2, 3, 9], [4, 5, 6]]
print(d):[[1, 2, 3], [4, 5, 6]]

如果
d = copy.copy(c)
print(c):[[1, 2, 3, 9], [4, 5, 6]]
print(d):[[1, 2, 3, 9], [4, 5, 6]]
同时
print(id(c)):1982732494024
print(id(d)):1982732496392
所以copy()也是深拷贝,不过只拷贝了一层。

注意:
如果copy(target)中的target是一个不可变类型,比如元组,那么copy执行的是浅拷贝哦

你可能感兴趣的:(浅拷贝,深拷贝)