賦值(=),深拷貝(copy.deepcopy),淺拷貝(copy.copy)

  • 賦值(=):其實就是對象的引用(別名)。

  • 淺拷貝(copy.copy):拷貝父對象,不會拷貝對象的內(nèi)部的子對象。

  • 深拷貝(copy.deepcopy): copy 模塊的 deepcopy 方法,完全拷貝了父對象及其子對象。

解析

1、**b = a: **賦值引用,a 和 b 都指向同一個對象。

2、b = a.copy(): 淺拷貝, a 和 b 是一個獨立的對象,但他們的子對象還是指向統(tǒng)一對象(是引用)。

b = copy.deepcopy(a): 深度拷貝, a 和 b 完全拷貝了父對象及其子對象,兩者是完全獨立的。

神奇的多變量賦值,以上概念不包含多變量賦值

a1 ,a2 = 123123,123123
a3 ,a4 = '123123','123123'
print('多變量賦值-int:',a1==a2,a1 is a2,a2 is a1,id(a1),id(a2))
print('多變量賦值-str:',a3==a4,a3 is a4,a4 is a3,id(a3),id(a4))
# 多變量賦值-int: True False False 2174409713520 2174409713488
# 多變量賦值-str: True True True 2174393548392 2174393548392


a5,a6=[1,2,3],[1,2,3]
a7,a8=(1,2,3),(1,2,3)
print('多變量賦值-list:',a5==a6,a5 is a6,a6 is a5,id(a5),id(a6))
print('多變量賦值-tuple:',a7==a8,a7 is a8,a8 is a7,id(a7),id(a8))
# 多變量賦值-list: True False False 2174361625096 2174361625160
# 多變量賦值-tuple: True False False 2174409619496 2174409619352


a9,a10=[1,2,a5],[1,2,a5]
a11,a12=(1,2,a5),(1,2,a5)
print('多變量賦值-list>list:',a9==a10,a9 is a10,a10 is a9,id(a9),id(a10))
print('多變量賦值-tuple>list:',a11==a12,a11 is a12,a12 is a11,id(a11),id(a12))
# 多變量賦值-list>list: True False False 2174409632712 2174409739592
# 多變量賦值-tuple>list: True False False 2174409619280 2174409619208


a13,a14=[1,2,a7],[1,2,a7]
a15,a16=(1,2,a7),(1,2,a7)
print('多變量賦值-list>tuple:',a13==a14,a13 is a14,a14 is a13,id(a13),id(a14))
print('多變量賦值-tuple>tuple:',a15==a16,a15 is a16,a16 is a15,id(a15),id(a16))
# 多變量賦值-list>tuple: True False False 2174409739528 2174409739656
# 多變量賦值-tuple>tuple: True False False 2174409619136 2174409619064
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容