Python中的對象之間賦值時是按引用傳遞的,若是須要拷貝對象,須要使用標準庫中的copy模塊。app
一、copy.copy 淺拷貝 只拷貝父對象,不會拷貝對象的內部的子對象。spa
二、copy.deepcopy 深拷貝 拷貝對象及其子對象code
>>> import copy >>> a = [1,2,3,4,['a','b']] #原始對象
>>> b = a #賦值,傳對象的引用
>>> c = copy.copy(a)
>>> d = copy.deepcopy(a)
>>> a.append(5) >>> a[4].append('c')
>>> print 'a=',a a= [1, 2, 3, 4, ['a', 'b', 'c'], 5] >>> print 'b=',b b= [1, 2, 3, 4, ['a', 'b', 'c'], 5] >>> print 'c=',c c= [1, 2, 3, 4, ['a', 'b', 'c']] >>> print 'd=',d d= [1, 2, 3, 4, ['a', 'b']]