python 中内存对数据的应用
python 对内存的使用
浅拷贝解释:引用的拷贝(只拷贝父对象); 深拷贝 解释:对对象资源的拷贝;
导入模块:
1
>>> import copy
1
2
3
4
5
6
7
8
9
10
11
>>> a = ]
>>> b = a
>>> a
]
>>> b
]
>>> id(a)
139712705065616
>>> id(b)
139712705065616
#定义二元列表,标签引用,且查看内存地址一致,但不能作为依据
调用copy.copy模块,进行拷贝 浅拷贝
1
>>> c=copy.copy(a)
观察c的地址空间,通过copy是独立的
1
2
3
4
5
6
7
8
>>> c
]
>>> a
]
>>> id(c)
139712705068784#注意
>>> id(a)
139712705065616#注意
向序列增加值:
1
2
3
4
5
6
7
>>> a.append('d')
>>> a
, 'd']
>>> b
, 'd']#b指向的是同一地址空间
>>> c
] #c未改变
浅拷贝只拷贝父对象:
1
2
3
4
5
6
>>> id(a)
139712704967456
>>> id(c)
139712704967456
>>> id(a)
139712705357456
#注意上述可变类型的子对象地址空间未改变,
调用copy.deepcopy模块,进行拷贝 深拷贝
1
>>> d = copy.deepcopy(a)
查看地址空间
1
2
3
4
5
6
7
8
>>> id(a)
139712705065616
>>> id(d)
139712705065688
>>> id(a)
139712704967456
>>> id(d)
139712705068640 #此处是不一致的
向序列增加值:
1
2
3
4
5
6
7
8
9
10
>>> a.append('e')
>>> a
, 'd', 'e']
>>> d
, 'd']
>>> a.append('x')
>>> a
, 'd', 'e']
>>> d
, 'd']
对对象资源的拷贝:
1
2
3
4
5
>>> id(a)
139712704967456
>>> id(d)
139712705068640
#注意上述可变类型的子对象地址空间发生改变
页:
[1]