import copy class 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中赋值、浅复制和深复制的区别
最新推荐文章于 2024-03-07 17:08:10 发布