今天來講一下我自己理解的 “賦值“,“淺拷貝”,“深拷貝”
1.賦值
"""= 賦值 賦值只是將a的引用賦值給了b""" #a = [1,2,3,[4,5]] # b = a # b.append(6) # print(a) #執行結果: [1, 2, 3, [4, 5],6] a
如上面所有,a只是將b的引用給了b,而b在尾部添加了一個元素6則會影響到a。
這也是 網上“對象賦值實際上是對象的引用”的體現了
2.淺拷貝
"""copy,淺拷貝,只是複製了a裏面的數據,但是裏面的子對象沒有被複制!""" # a = [1,2,3,[4,5]] # b = a.copy() # b[3].append(6) # print(a) # 執行結果:[1, 2, 3, [4, 5, 6]] a
3.深拷貝
"""深copy,不但複製了a裏面的數據,而且連a裏面的子對象也被複制了!""" a = [1,2,3,[4,5]] b = copy.deepcopy(a) b[3].append(6) print(a) #執行結果: [1, 2, 3, [4, 5]] a
這個也是很多面試官會問的一個常見問題,所以今天有感而發整理出來.