#Python系列#--Python对象之赋值,浅拷贝,深拷贝

user

雨橙

中国.四川.成都

世界之上、唯有远见、惟爱不变。


示例代码:
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 )
 
 
输出结果:
('a = ', [1, 2, 3, 4, ['a', 'b', 'c'], 5])
('b = ', [1, 2, 3, 4, ['a', 'b', 'c'], 5])
('c = ', [1, 2, 3, 4, ['a', 'b', 'c']])
('d = ', [1, 2, 3, 4, ['a', 'b']])
 
赋值:即对象的引用。a赋值给b,即b和a指向了同一地址引用。修改了a同时b也被修改,因为引用了同一地址。
浅拷贝:即复制了对象。但对于对象中的元素,依然使用原始的引用。
深拷贝:即拷贝一个独立的对象副本。修改原对象时不会修改副本。相当于一个新的对象。开辟一个新的引用地址。
posted at