對象的淺拷貝和深拷貝
- 簡要介紹
- 代碼實現
簡要介紹
淺拷貝:python拷貝一般都是淺拷貝。拷貝時,對象包含的子對象內容不拷貝。因此,源對象和拷貝對象引用同一個對象
深拷貝:使用copy模塊的deepcopy函數,遞歸拷貝對象中包含的子對象。源對象和拷貝對象所有的子對象也不同
變量的數值操作:只是形成兩個變量,實際上時指向同一個對象
代碼實現
// #測試淺拷貝和深拷貝
import copyclass MobilePhone:def __init__(self,cpu,screen):self.cpu=cpuself.screem=screenclass CPU:def calculate(self):print("算你個12345")print("cpu對象:",self)
class Screen:def show(self):print("顯示一個好看的畫面,亮瞎你的眼")print("screen對象",self)
#測試變量的賦值
c1=CPU()
c2=c1
print(c1)
print(c2)#測試淺拷貝
s1=Screen()
m1=MobilePhone(c1,s1)
m2=copy.copy(m1)print(m1,m1.cpu,m1.screem)
print(m2,m2.cpu,m2.screem)
#測試深復制
m3=copy.deepcopy(m1)
print(m1,m1.cpu,m1.screem)
print(m3,m3.cpu,m3.screem)
變量賦值操作結果:
淺拷貝結果:
深拷貝結果