Python基礎系列-copy和deepcopy

娜娜0130發表於2018-08-23
版權宣告:如需轉載,請註明轉載地址。 https://blog.csdn.net/oJohnny123/article/details/81980698
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
Created by liaoyangyang1 on 2018/8/23 下午1:41.
"""


# 簡單來說,就是copy出來的物件cp1,如果demo改了他會跟著改。但是deepcopy 出來的 cp2還是原來的值



import copy
demo2 = demo = [1, 2, [3, 4]] #origin 裡#邊有三個元素:1, 2,[3, 4]
cp1 = copy.copy(demo)
cp2 = copy.deepcopy(demo)

print(id(demo))
print(id(cp1))
print(id(cp2))

print(cp1)
print(cp2)

print(cp1 == cp2)
print(cp1 is cp2 )
print(cp1 is demo )
print(cp2 is demo )
print(demo2 is demo )

print(`=`*100)
#cp1 和 co2 看上去相同,但#已不再是同一個object
#把demo內的子list [3, 4] 改掉了#一個元素,觀察到 cp1 和 #cp2的變化如下所示:
demo2[2][0] = "hi"
demo =[1, 2, [`hi`, 4]]


print(cp1)
print(cp2)

 


相關文章