1. 程式人生 > >淺拷貝和深拷貝理解

淺拷貝和深拷貝理解

import copy
x = {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
y = copy.deepcopy(x)
y['username'] = 'mlh'

y['machines'].remove('bar')

x,y
({'machines': ['foo', 'bar', 'baz'], 'username': 'admin'},
 {'machines': ['foo', 'baz'], 'username': 'mlh'})
淺拷貝只是拷貝了物件的最上層,所以上層改變,拷貝物件也跟著改變,但下一層的物件在記憶體的位置還是一個;

深拷貝是全部拷貝了,拷貝物件的全部要素都複製到記憶體的另外一個地方,所以原拷貝物件改變不影響拷貝後的記憶體變化。