Python中赋值、深拷贝与浅拷贝有何本质区别?

2026-06-09 17:343阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1415个文字,预计阅读时间需要6分钟。

Python中赋值、深拷贝与浅拷贝有何本质区别?

在Python中,给一个对象赋值实际上是对对象内存存储位置的引用。当我们把一个对象赋给另一个变量时,这个变量并不复制对象本身,而是复制了这个对象的引用。因此,两个变量指向同一块内存空间。当修改其中一个变量时,另一个变量的值也会随之改变。

在python中,给一个对象赋值,实际上就是对象对内存空间存储的值的引用。当我们把对象赋值给另一个变量的时候,这个变量并没有拷贝这个对象,而只是拷贝了这个对象的引用而已。

一般情况下我们会通过三种方法来实现拷贝对象的引用。

Python直接赋值

直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的变量也会做相同的改变。其实就是对‘对象'的引用

示例:

>>> list_demo = [2, 4, 6] >>> a = list_demo >>> print(a) [2, 4, 6] >>> id(list_demo) 65006808 >>> id(a) 65006808 >>> list_demo.append(8) >>> print(list_demo) [2, 4, 6, 8] >>> print(a) [2, 4, 6, 8] >>> id(list_demo) 65006808 >>> id(a) 65006808 >>>

通过 id() 函数我们可以得出,变量 list_demo 与 a 指向的都是同一个内存空间地址,当被赋值的 list_demo改变,被赋值的 a 同样会做相同的改变。

阅读全文

本文共计1415个文字,预计阅读时间需要6分钟。

Python中赋值、深拷贝与浅拷贝有何本质区别?

在Python中,给一个对象赋值实际上是对对象内存存储位置的引用。当我们把一个对象赋给另一个变量时,这个变量并不复制对象本身,而是复制了这个对象的引用。因此,两个变量指向同一块内存空间。当修改其中一个变量时,另一个变量的值也会随之改变。

在python中,给一个对象赋值,实际上就是对象对内存空间存储的值的引用。当我们把对象赋值给另一个变量的时候,这个变量并没有拷贝这个对象,而只是拷贝了这个对象的引用而已。

一般情况下我们会通过三种方法来实现拷贝对象的引用。

Python直接赋值

直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的变量也会做相同的改变。其实就是对‘对象'的引用

示例:

>>> list_demo = [2, 4, 6] >>> a = list_demo >>> print(a) [2, 4, 6] >>> id(list_demo) 65006808 >>> id(a) 65006808 >>> list_demo.append(8) >>> print(list_demo) [2, 4, 6, 8] >>> print(a) [2, 4, 6, 8] >>> id(list_demo) 65006808 >>> id(a) 65006808 >>>

通过 id() 函数我们可以得出,变量 list_demo 与 a 指向的都是同一个内存空间地址,当被赋值的 list_demo改变,被赋值的 a 同样会做相同的改变。

阅读全文