浅copy仅仅是对对象的引用,可以理解为是软连接。而深copy是新内存的开辟,他会重新创建内存块存放数据。
简单例子说明:
name_info = {'name':'jack','age':30,'hobby':['movie','football']} import copy name_info2 = copy.copy(name_info) name_info['hobby'][0] = 'music' print name_info2 print name_info In [256]: name_info Out[256]: {'age': 30, 'hobby': ['music', 'football'], 'name': 'jack'} In [257]: name_info2 Out[257]: {'age': 30, 'hobby': ['music', 'football'], 'name': 'jack'}
可以发现name_info和name_info2都一样,这个就是浅copy。
name_info = {'name':'jack','age':30,'hobby':['movie','football']} import copy name_info2 = copy.deepcopy(name_info) name_info['hobby'][0] = 'music' print name_info2 print name_info Out[262]: {'age': 30, 'hobby': ['movie', 'football'], 'name': 'jack'} In [263]: name_info Out[263]: {'age': 30, 'hobby': ['music', 'football'], 'name': 'jack'}
可以发现name_info和name_info2是不一样的。