python copy

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013608336/article/details/82817321

直接赋值:其实就是对象的引用(别名)。

>>> a= [1,2,3]
>>> b=a
>>> b.append(4)
>>> b
[1, 2, 3, 4]
>>> a
[1, 2, 3, 4]

浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。

>>> import copy
>>> a = [1, 2, 3, 4, ['a', 'b']]
>>> c = copy.copy(a) 
>>> a.append(5)
>>> a
[1, 2, 3, 4, ['a', 'b'], 5]
>>> c
[1, 2, 3, 4, ['a', 'b']]
>>> a[4].append('c')
>>> a
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
>>> c
[1, 2, 3, 4, ['a', 'b', 'c']]
>>> 

深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

>>> a = [1, 2, 3, 4, ['a', 'b']]
>>> d = copy.deepcopy(a) 
>>> a.append(5)                 #修改对象a ,
>>> a[4].append('c')
>>> a
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
>>> d
[1, 2, 3, 4, ['a', 'b']]


猜你喜欢

转载自blog.csdn.net/u013608336/article/details/82817321