python—类和对象之浅拷贝和深拷贝详细讲解
一、變量的賦值操作
定義:只是形成2個變量,實際上還是指向同一個對象
代碼如下:
內(nèi)存示意圖:
將創(chuàng)建CPU類的實例對象賦值給cpu1進(jìn)行儲存,所以cpu1的id為0212,
然后將cpu1賦值給cpu2,cpu2的id也為0212;
cpu1和cpu2指向同一個類的實例對象。
在一個類中,有一個類的實例對象,用2個變量去存儲。
二、淺拷貝
定義:
python拷貝一般都是淺拷貝,拷貝時,只拷貝父對象,不會拷貝對象的內(nèi)部的子對象,因此,源對象與拷貝對象會引用同一個子對象
代碼:
代碼執(zhí)行結(jié)果為:可以看到computer和computer2的對象不同,但是所包含的子對象computer.cpu1和computer2.cpu1一樣,computer.disk和computer2.disk一樣
內(nèi)存示意圖:
三、深拷貝
定義:
使用copy模塊的deepcopy函數(shù),遞歸拷貝對象中包含的子對象,源對象和拷貝對象所有的子對象也不相同。
代碼:
執(zhí)行結(jié)果為:
代碼執(zhí)行結(jié)果為:可以看到computer和computer3的對象不同,而且所包含的子對象computer.cpu1和computer3.cpu1也不一樣,computer.disk和computer3.disk也不一樣。
內(nèi)存示意圖:
總結(jié)
以上是生活随笔為你收集整理的python—类和对象之浅拷贝和深拷贝详细讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中__init__和__ne
- 下一篇: python——生成器详解