import copyclass moblephone:
def __init__(self,cpu,screen):
self.cpu=cpu
self.screen=screen
class cpu:
def calculate(self):
print("頂你個肺")
print("普尼**")
class screen:
def show(self):
print("看毛線")
print("biubiu",self)
print("測試變數賦值")
m1=cpu()
m2=m1
print(m1)
print(m2)
print("測試淺複製")
m3=screen()
m4=moblephone(m1,m3)
m5=copy.copy(m4)
print(m4,m4.cpu,m4.screen)
print(m5,m5.cpu,m5.screen)
print("測試深複製")
m6=copy.deepcopy(m4)
print(m4,m4.cpu,m4.screen)
print(m6,m6.cpu,m6.screen)
#返回值:
##測試變數賦值,位址相同
##<__main__.cpu object at 0x0000022af1a686d8>
##<__main__.cpu object at 0x0000022af1a686d8>
##測試淺複製,複製的物件位址不同,子物件位址相同
##<__main__.moblephone object at 0x0000022af1a68588> <__main__.cpu object at 0x0000022af1a686d8> <__main__.screen object at 0x0000022af1a68630>
##<__main__.moblephone object at 0x0000022af1a68f98> <__main__.cpu object at 0x0000022af1a686d8> <__main__.screen object at 0x0000022af1a68630>
##測試深複製,物件以及所有的子物件位址都不同
##<__main__.moblephone object at 0x0000022af1a68588> <__main__.cpu object at 0x0000022af1a686d8> <__main__.screen object at 0x0000022af1a68630>
##<__main__.moblephone object at 0x0000022af1a688d0> <__main__.cpu object at 0x0000022af1a6b6d8> <__main__.screen object at 0x0000022af1a6b5c0>
python中的copy模組 淺複製和深複製
在總結copy模組中的淺複製 copy 和深複製 deepcopy 前,先對 引用 做下說明 引用是指儲存的值為物件的位址。在 python 語言中,乙個變數儲存的值除了基本型別儲存的是值外,其它都是引用,因此對於它們的使用就需要小心一些。下面舉個例子 問題描述 已知乙個列表,求生成乙個新的列表,列...
python 深複製和淺複製
l1 1,2,3 4,5 l2 list l1 l1 1,2,3 4,5 99 l2 1,2,3 4,5 l1 1 remove 2 l1 1,3 4,5 99 l2 1,3 4,5 l2 1 11,12 l2 2 10,11 l1 1,3,11,12 4,5 99 l2 1,3,11,12 4,5...
python3中賦值 深複製和淺複製的區別
1 直接賦值 預設淺複製傳遞物件的引用而已,原始列表改變,被賦值的b也會做相同的改變。其實就是物件的引用 別名 2 淺複製 copy copy方法為淺複製,沒有複製子物件,所以原始資料改變,子物件會改變。3 深複製 deepcopy copy 模組的 deepcopy 方法,包含物件裡面的自物件的複...