浅拷贝和深拷贝_内存分析
copy(浅拷贝): 不拷贝子对象的内容,只是拷贝子对象的引用。
deepcopy(深拷贝): 会连子对象内容全部拷贝一份,对子对象的修改不会影响源对象。
测试浅拷贝:
import copy
a = [10, 20, [5, 6]]
b = copy.copy(a)
print("a:", a) #输出:a: [10, 20, [5, 6]]
print("b:", b) #输出:a: [10, 20, [5, 6]]
b.append(30)
b[2].append(7)
print("浅拷贝......") #输出:
print("a:", a) #输出: a: [10, 20, [5, 6, 7]]
print("b:", b) #输出: b: [10, 20, [5, 6, 7], 30]
测试深拷贝:
import copy
a = [10, 20, [5, 6]]
b = copy.deepcopy(a)
print("a:", a) #输出:a: [10, 20, [5, 6]]
print("b:", b) #输出:a: [10, 20, [5, 6]]
b.append(30)
b[2].append(7)
print("深拷贝......")
print("a:", a) #输出: a: [10, 20, [5, 6]]
print("b:", b) #输出: b: [10, 20, [5, 6, 7], 30]