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