直接赋值、浅拷贝与深拷贝
转自:https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html
直接赋值
b=a直接赋值,a和b都指向同一个对象,b是a的引用:
浅拷贝
b=a.copy(),a和b是独立的对象互不影响,但他们的子对象还是指向同一个对象,互为引用,会相互影响:
深拷贝
import copy
b=copy.deepcopy(a)
a和b是独立的对象,他们的子对象也是独立的对象,从头到尾都互不影响:
代码实例
import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy.copy(a) #对象拷贝,浅拷贝 d = copy.deepcopy(a) #对象拷贝,深拷贝 a.append(5) #修改对象a a[4].append('c') #修改对象a中的['a', 'b']数组对象 print( 'a = ', a ) print( 'b = ', b ) print( 'c = ', c ) print( 'd = ', d )