当前位置: 主页 > 日志 > Python >

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

 原文:http://www.hackbase.com/subject/2009-12-30/17137.html

 

Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。

1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。

2. copy.deepcopy 深拷贝 拷贝对象及其子对象

 

一个很好的例子:

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']]

[日志信息]

该日志于 2011-08-27 01:15 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部