Python(十六)——浅拷贝和深拷贝

Python(十六)——深拷贝和浅拷贝

一、定义
浅拷贝(copy):不拷贝子对象的内容,只是拷贝子对象的引用。
深拷贝(deepcopy):会连子对象的内存也全部一起拷贝一份,对子对象的修改不会影响源对象。
通俗解释:深拷贝是拷贝一个人,连带着儿子和孙子都会拷贝,浅拷贝是只拷贝一个人,再指向原来的儿子和孙子。
二、代码部分

import copy

def test1():
    '''浅拷贝'''
    a = [1,2,[3,4]]
    b = copy.copy(a)
    print('a:',a)
    print('b',b)
    b.append(30)
    b[2].append(40)
    print('浅拷贝之后————————————')
    print('a:',a)
    print('b:',b)
if __name__=='__main__':
    test1()
	#a: [1, 2, [3, 4]]
	#b [1, 2, [3, 4]]
	#浅拷贝之后————————————
	#a: [1, 2, [3, 4, 40]]
	#b: [1, 2, [3, 4, 40], 30]
def test2():
    '''深拷贝'''
    a = [1,2,[3,4]]
    b = copy.deepcopy(a)
    print('a:',a)
    print('b',b)
    b.append(30)
    b[2].append(40)
    print('深拷贝之后————————————')
    print('a:',a)
    print('b:',b)
if __name__=='__main__':
    test2()
	#a: [1, 2, [3, 4]]
	#b [1, 2, [3, 4]]
	#深拷贝之后————————————
	#a: [1, 2, [3, 4]]
	#b: [1, 2, [3, 4, 40], 30]

三、总结、
深拷贝不对对数据源造成任何改变、。

猜你喜欢

转载自blog.csdn.net/zxq6661/article/details/113448716