python中赋值,浅拷贝,深拷贝 可变对象和不可变对象

首先,需要了解一下可变与不可变对象:
不可变对象:number,string,tuple

  • 变量所指向的内存地址处的值是不可以改变的(对于这些类型,没有copy一说,多是对原对象的一次引用)

可变对象:list,dict,set,(class的实例)

  • 变量所指向的内存地址处的值是可以改变的

赋值

赋值是对内存中已经存在的对象的一次引用,相当于给内存中的对象打了一个标签(附:当对象的引用为0时,python的垃圾回收机制会将其回收)

浅拷贝

浅拷贝和深拷贝是对于组合对象来说的(即对象中包含可变对象)
浅拷贝即创建一个新的对象,对象的元素引用原对象的元素,即对象中的可变元素不会被拷贝

深拷贝

创建一个对象,然后递归的拷贝原对象的元素

posted @ 2020-08-19 20:22  TasteL  阅读(152)  评论(0编辑  收藏  举报