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 的数据也会做相同的改变;

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