對(duì)比解析.png
一. 賦值:
在 Python 中,對(duì)象的賦值就是簡(jiǎn)單的對(duì)象引用黄绩,這點(diǎn)和 C++不同
賦值: 完全復(fù)制羡洁,內(nèi)存地址一樣,如果原來(lái)的改變,后面的也會(huì)跟著變
二. 淺拷貝(shallow copy):
淺拷貝會(huì)創(chuàng)建新對(duì)象爽丹,其內(nèi)容非原對(duì)象本身的引用筑煮,而是原對(duì)象內(nèi)第一層對(duì)象的引用。淺拷貝有三種形式:切片操作粤蝎、工廠函數(shù)真仲、copy 模塊中的 copy 函數(shù)。
淺拷貝: 可以理解為只拷貝表面一層列表初澎,里面的列表沒(méi)拷貝秸应,如果原來(lái)的里面的列表改變了,拷貝的會(huì)跟著變
三. 深拷貝(deep copy):
深拷貝只有一種形式碑宴,copy 模塊中的 deepcopy()函數(shù)软啼。深拷貝和淺拷貝對(duì)應(yīng),深拷貝拷貝了對(duì)象的所有元素墓懂,包括多層嵌套的元素焰宣。因此霉囚,它的時(shí)間和空間開銷要高捕仔。
深拷貝:可以理解為把原件的全部復(fù)制了一邊,跟原本的沒(méi)有一點(diǎn)關(guān)系,如果原件改了榜跌,拷貝的是不會(huì)變的
四. 拷貝的注意點(diǎn):
1闪唆、對(duì)于非容器類型,如數(shù)字钓葫、字符悄蕾,以及其他的“原子”類型,沒(méi)有拷貝一說(shuō)础浮,產(chǎn)生的都是原對(duì)象的引用帆调。
2、如果元組變量值包含原子類型對(duì)象豆同,即使采用了深拷貝番刊,也只能得到淺拷貝。