Python中的对象赋值与拷贝
2017-09-06 23:15
204 查看
对象赋值实际是对象引用
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块
copy.copy浅拷贝
只拷贝父对象,不会拷贝对象内部的子对象copy.deepcopy深拷贝
拷贝对象及其子对象序列类型对象的默认拷贝类型是浅拷贝
可以通过一下几种方式实现:1. 完全切片操作
[:]
2. 利用工厂函数
list(),
dict()
3. 使用copy模块的copy函数
举例
import copy a = [1,2,3,4,['a','b']]#原始对象 b = a #赋值,传引用 c = copy.copy(a)#对象拷贝,浅拷贝 d = copy.deepcopy(a)#对象拷贝,深拷贝 a.append(5)#修改对象a a[4].append('c')#修改对象a中的子对象['a','b'] print 'a = ', a print 'b = ', b print 'c = ', c print 'd = ', d >>a = [1, 2, 3, 4, ['a', 'b', 'c'], 5] >>b = [1, 2, 3, 4, ['a', 'b', 'c'], 5] >>c = [1, 2, 3, 4, ['a', 'b', 'c']] >>d = [1, 2, 3, 4, ['a', 'b']]
相关文章推荐
- python赋值和拷贝----一切皆对象,参数皆引用
- Python对象赋值和拷贝
- Python对象赋值、浅拷贝和深拷贝
- python赋值和拷贝----一切皆对象,参数皆引用
- python赋值和拷贝----一切皆对象,参数皆引用
- python中对象的赋值、浅拷贝和深拷贝
- python赋值和拷贝----一切皆对象,参数皆引用
- python的对象赋值、浅拷贝和深拷贝
- Python中的对象赋值、浅拷贝与深拷贝
- python赋值对象
- python 深入理解 赋值、引用、拷贝、作用域
- python——赋值与深浅拷贝
- Python Cookbook 4.1 复制(拷贝)对象(浅复制和深复制)
- python——赋值与深浅拷贝
- Python中实现变量赋值传递时的引用和拷贝方法
- Python中的赋值,浅拷贝和深拷贝的区别
- C++中浅拷贝、深拷贝、对象的复制、对象的赋值
- python中的变量赋值,浅拷贝,深拷贝
- C++对象的拷贝与赋值操作
- 浅谈Python中对象拷贝