深浅拷贝的异同
【深浅拷贝的异同】深浅拷贝异同主要体现于可变对象上,对于tuple之类的不可变对面,深浅拷贝后,地址值和变量值都是一样的,但是对与list之类的可变对象,深浅拷贝后,差异性很大
>>>import copy
>>>a = (1,2,3)
>>>b = a
>>>c = copy.copy(a)
>>>d = copy.deepcopy(a)>>>id(a)==id(b)==id(c)==id(d)
True>>>a = [1,2,3,[4,4]]
>>>b = a
>>>c = copy.copy(a)
>>>d = copy.deepcopy(a)>>> a[3].append(4)
>>>a.append[5]>>>a, b, c, d
[1,2,3,[4,4,4],5] #a
[1,2,3,[4,4,4],5] #b,使用is拷贝,b的地址值和变量值一直保持和a一样。ab指向同一块内存
[1,2,3,[4,4,4]]#c使用copy浅拷贝,a的某个元素内部变化,c的相同索引位置的值也会变化, 不指向同一内存
[1,2,3,[4,4]]#d使用deepcopy深拷贝,重新划分一块内存给d,地址值改变,d不跟随a变动
推荐阅读
- 配置vim成studio
- Angular|Angular Ngrx Store 应用程序状态的一些典型例子
- 关于|关于 SAP Fiori 应用的离线使用
- Angular|Angular Ngrx 里 Store 和 State 的关系
- Angular|Angular Ngrx Store 里 State 和 Reducer 的绑定关系是如何实现的
- 关于|关于 Windows10 里的 Driver Verifier
- 使用|使用 NgRX Store Module 给 Angular 应用开发带来的收益
- 关于|关于 SAP 电商云 Spartacus UI Transfer State 冗余 API 请求发送的讨论
- Angular|Angular Ngrx store 里的 Selector 介绍
- Angular|Angular 应用里几种 Component 的分类阐述