Python 實戰深拷貝與淺拷貝

  • 說在前面

    • 我們在談拷貝之前,是不是得想一下,拷貝和賦值、引用之間的關係;

    • 拷貝 == 賦值?

    • 拷貝 == 引用?

    • 賦值 == 引用?

  • 基礎例子:

    • 假如我們有兩個變量a 、b,其中a是一個引用,b也是一個引用;

    • 我們分別給a 、b 賦值 1、2;

    • a = 1、b = 2;

    • print(a) -> 1;

    • print(b) -> 2;

  • 引用

    • 簡單來說就是 a、b 分別指向了原始數據 1,2 的內存地址;

    • 引用是一塊內存指向另一塊內存;

    • 一般引用中的內容是一個內存地址;

    • 也就是a、b 變量分別引用了內存地址中的值 1 和 2;

  • 賦值

    • a = b,這裏就是將 b 引用的值賦給了 a, 此時是將 a 地址指向了 b 的引用的地址;

    • 這時 print(a) -> 應該是 2;

    • 要是對比引用和賦值,其實就是引用相當於對原始數據做操作,賦值相當於對原始數據的副本做操作;

    • 其中直接賦值是默認淺拷貝傳遞數據,傳遞的是對象的引用,當原始數據 b 改變,則 a 的數據也會做相同的改變;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章