對象的傳參用的是傳引用,但開發中通常不允許對傳入參數進行修改。因此對象拷貝很常用,Python提供一個很方便的對象拷貝方法
如代碼:
__author__ = 'houjinchao'import copydef main(): a=[1,2,3,4,5,6,['a','b','c','d']] b=a c=copy.copy(a) d=copy.deepcopy(a) a.append(8) a[6].append('e') PRint 'a=',a print 'b=',b print 'c=',c print 'd=',dif __name__ =="__main__": main()
執行結果:
a= [1, 2, 3, 4, 5, 6, ['a', 'b', 'c', 'd', 'e'], 8]b= [1, 2, 3, 4, 5, 6, ['a', 'b', 'c', 'd', 'e'], 8]c= [1, 2, 3, 4, 5, 6, ['a', 'b', 'c', 'd', 'e']]d= [1, 2, 3, 4, 5, 6, ['a', 'b', 'c', 'd']]
深拷貝將對象a 的子對象也進行了拷貝,所以,對對象a的子對象進行添加'e'操作對d無影響
新聞熱點
疑難解答