a = [1,2,3,4,[1,2]]
直接賦值
直接賦值就是新建了一個(gè)對(duì)象的引用,兩個(gè)引用指向同一個(gè)對(duì)象幌氮,比如 b=a
首先創(chuàng)建對(duì)象a缭受,指向了一塊空間,然后又創(chuàng)建了對(duì)象b该互,和a指向同一塊空間米者,因此無(wú)論修改a還是b,另一個(gè)對(duì)象也同樣會(huì)被修改宇智。
a.append(4)
# a [1, 2, 3, 4, [1, 2], 4]
# b [1, 2, 3, 4, [1, 2], 4]
淺拷貝
淺拷貝也是新建了一個(gè)對(duì)象蔓搞,c = copy.copy(a),不一樣的是a和b的父級(jí)指向不同的地址随橘,子對(duì)象卻是引用的同一塊地址
a[4].append(3)
# a [1, 2, 3, 4, [1, 2, 3], 4]
# b [1, 2, 3, 4, [1, 2, 3], 4]
# c [1, 2, 3, 4, [1, 2, 3], 4]
a.append(5)
# a [1, 2, 3, 4, [1, 2, 3], 4, 5]
# b [1, 2, 3, 4, [1, 2, 3], 4, 5]
# c [1, 2, 3, 4, [1, 2, 3], 4]
深拷貝
深拷貝就是把父級(jí)對(duì)象和子級(jí)對(duì)象完全拷貝了喂分,和原來(lái)的對(duì)象都沒(méi)有什么關(guān)系,改變?nèi)魏我粋€(gè)對(duì)象都不會(huì)影響到另一個(gè)太防。