Python中的對(duì)象之間賦值時(shí)是按引用傳遞的倚评,如果需要拷貝對(duì)象音半,需要使用標(biāo)準(zhǔn)庫(kù)中的copy模塊萨赁。
- copy.copy 淺拷貝 只拷貝父對(duì)象变丧,不會(huì)拷貝對(duì)象的內(nèi)部的子對(duì)象噪叙。
- copy.deepcopy 深拷貝 拷貝對(duì)象及其子對(duì)象
一個(gè)很好的例子:
import copy
a = [1, 2, 3, 4, ['a', 'b']] #原始對(duì)象
b = a #賦值抗俄,傳對(duì)象的引用
c = copy.copy(a) #對(duì)象拷貝巩踏,淺拷貝
d = copy.deepcopy(a) #對(duì)象拷貝腮介,深拷貝
a.append(5) #修改對(duì)象a
a[4].append('c') #修改對(duì)象a中的['a', 'b']數(shù)組對(duì)象
print 'a = ', a
print 'b = ', b
print 'c = ', c
print 'd = ', d
輸出結(jié)果:
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']]