可變對(duì)象:list dict set
簡(jiǎn)單對(duì)象
import copy
t = [1, 2, 3, 4]
t1 = t
c1 = copy.copy(t)
c2 = copy.deepcopy(t)
print(id(t),id(t1), id(c1), id(c2))
#1200892231176 1200892231176 1200892222728 1200892222728
復(fù)雜對(duì)象(嵌套結(jié)構(gòu))
import copy
t = [1, 2, 3, 4,[1,2,3]]
t1 = t
c1 = copy.copy(t)
c2 = copy.deepcopy(t)
print(id(t),id(t1), id(c1), id(c2))
print(id(t[4]),id(t1[4]), id(c1[4]), id(c2[4]))
#2294743052360 2294743052360 2294591873800 2294585876552
#2294743065096 2294743065096 2294743065096 2294742993672
區(qū)別在于淺拷貝的子結(jié)構(gòu)指向原數(shù)據(jù)地址懂盐。
結(jié)構(gòu)圖
不可變對(duì)象:tuple string int float bool
import copy
t = (1, 2, 3, 4)
t1 = t
c1 = copy.copy(t)
c2 = copy.deepcopy(t)
print(id(t1), id(c1), id(c2))
#1812694403576 1812694403576 1812694403576