您的位置:首页 > 编程语言 > Python开发

Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

2010-08-04 17:24 477 查看
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。

  1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。通俗点就是部分拷贝
  2. copy.deepcopy 深拷贝 拷贝对象及其子对象,通俗点就是完全拷贝

1 a = ["1","2","3",['a','b']]
2 b = a #引用
3
4 c=copy.copy(a)#浅拷贝
5
6 d = copy.deepcopy(a) #深度拷贝
7
8 a.remove("1")
9 a[2].append('c')

print a
print b
print c
print c

运行结果:
['2', '3', ['a', 'b', 'c']]
['2', '3', ['a', 'b', 'c']]
['1', '2', '3', ['a', 'b', 'c']]
['1', '2', '3', ['a', 'b']] 我们可以看到,与c语言不同的是,=后不是两个不同的值,而是一个引用的值。要注意。。

作者:xiaoxia
出处:http://cnblogs.com/xiaoxia

我的淘宝:http://shop62115161.taobao.com/

本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: