深拷贝与浅拷贝与赋值

python的深拷贝与浅拷贝

定义

直接赋值,浅拷贝,深拷贝


直接赋值:其实就是对象的引用(别名)。

浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。

深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。复制整个依赖的变量。

可变数据类型 和 不可变数据类型


不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。

可变数据类型    :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。

代码

import copy

a = 15							# 不可变数据类型
b = 20
c = 30
list0 = [1, 2, 3]
list1 = [a, b, c, 1, 3, 10, list0]    # 可变数据类型

list2 = list1					    # 复制
copy_list = copy.copy(list1) 		 # 浅拷贝
deep_list = copy.deepcopy(list1)  	 # 深拷贝

图解

深拷贝与浅拷贝与赋值

上一篇:34、知识点补充之直接赋值、浅拷贝和深度拷贝解析


下一篇:Dev中出现Error 0: 操作成功完成。