- 当一个变量=x的时候,约定为:指向地址的过程
- 浅拷备:copy.copy()
- 想给一个变量获取一个和另一个变量相同的值的时候,但是拥有自己独立的内存地址空间的时候,可以使用copy.copy()模块,但是如果另一个变量是不可变数据类型的时候,浅拷备不生效 (只拷备最外层:内存地址中的数据依然是引用)
- 如果copy.copy()拷备的是元组(不可变数据类型),那么它不会进行浅拷备,仅仅是一个指向
- 深拷备:copy.deepcopy()
- 拷备模块里面的浅拷备模块
- 所有的数值类型和布尔型,元组,str是不可变数据类型
- list是可变的数据类型
- 不可变数据类型:
- 浅拷贝,内外层不变([ ])
- 深拷贝,内外层都变化([ ])
- 深浅拷贝,内外层都不变 (( ))
- 可变数据类型
- 浅拷贝,外层变化,内层不变[( )]
- 深拷贝,外层变化,内层不变[( )]
- 浅拷贝,外层变化,内层不变[[ ]]
- 深拷贝,内外层都变[[ ]]
- 针对对象全部为不可变数据类型时:深浅拷贝,内外层都不变
- 针对对象包含可变数据类型时:
- 浅拷贝:内层都不变,外层根据外层的数据类型变化
- 深拷贝:内层根据内层的数据类型变化,外层都变化
深拷贝与浅拷贝的区别
最新推荐文章于 2021-10-22 19:42:17 发布