标签:
一、深浅拷贝
深浅拷贝是指copy模块下的copy()和deepcopy()方法。
1、浅拷贝
示例:
>>> import copy >>> a = ‘hello word‘ >>> b = {1:‘gome‘,2:‘ahaii‘,3:[1,2,3,4]} >>> a1 = copy.copy(a) >>> b1 = copy.copy(b) >>> print id(a) 140458175739296 >>> print id(a1) 140458175739296 >>> print id(b) 140458175695680 >>> print id(b1) 140458175749208 >>> print id(b[3]) 140458175609096 >>> print id(b1[3]) 140458175609096 >>> print id(b[3][0]) 41361752 >>> print id(b1[3][0]) 41361752
浅拷贝时,变量的内存地址不会发生改变。
2、深拷贝
示例1:
>>> import copy >>> a = ‘hello word‘ >>> print id(a) 140069292463520 >>> a1 = copy.deepcopy(a) >>> print id(a1) 140069292463520
对于字符串或者整型,深拷贝同浅拷贝效果一样,其内存地址不会发生改变。
示例2:
>>> import copy >>> b = {1:‘hello word‘,2:‘ahaii‘,3:[1,2,3,4]} >>> b1 = copy.deepcopy(b) >>> print id(b) 140442326100800 >>> print id(b1) 140442326156184 >>> print id(b[3]) 140442326014216 >>> print id(b1[3]) 140442326097288 >>> print id(b[3][0]) 32555352 >>> print id(b1[3][0]) 32555352
深拷贝时,除了最内层数据(字符串或数字)外,其他数据都会重新创建一份,内存地址发生改变。
二、函数之动态参数
(待续)
标签:
原文地址:http://www.cnblogs.com/ahaii/p/5140165.html