Python深拷貝與淺拷貝區別

可變類型

如list、dict等類型,改變容器內的值,容器地址不變。spa

不可變類型

如元組、字符串,原則上不可改變值。若是要改變對象的值,是將對象指向的地址改變了對象

淺拷貝

對於可變對象來講,開闢新的內存空間存儲容器對象,但不開闢新空間存儲容器的值,容器內部值的對象仍然指向原來的地址。即只對外層對象進行拷貝blog

不可變對象則將拷貝對象的值進行拷貝內存

深拷貝

對於可變對象,既開闢新的內存空間存儲容器對象,也開闢新空間存儲容器的值。也就是,既拷貝容器對象,也拷貝容器對象內部的值對象字符串

不可變對象則將拷貝對象的值進行拷貝容器

下面這張我本身畫的圖能夠更直觀地理解Python中深拷貝與淺拷貝的區別

相關文章
相關標籤/搜索