#变量的赋值操作,只是形成两个变量,实际上还是指向同一个对象
#变量的赋值
class CPU:
pass
class Disk:
pass
class Computer:
def __init__(self,cpu,disk):
self.cpu=cpu
self.disk=disk
#(1)变量的赋值
cpu1=CPU()
cpu2=cpu1
print(cpu1) #<__main__.CPU object at 0x7ff61f1aafd0>
print(cpu2) #<__main__.CPU object at 0x7ff61f1aafd0>
关系图:
# 浅拷贝和深拷贝
浅拷贝:只拷贝主对象,子对象不拷贝
深拷贝:主对象和子对象都拷贝
class CPU:
pass
class Disk:
pass
class Computer:
def __init__(self,cpu,disk):
self.cpu=cpu
self.disk=disk
#(2)浅拷贝
disk=Disk() #创建一个硬盘类的对象
computer=Computer(cpu1,disk) #创建计算机类的对象
#浅拷贝
import copy #导入一个包
computer2=copy.copy(computer) #拷贝一份computer给computer
print(computer,computer.cpu,computer.disk)
print(computer2,computer2.cpu,computer2.disk)
#浅拷贝:只拷贝主对象,子对象不拷贝
#计算机的对象有两个 cpu1和cpu2 计算机的主对象cpu和disk只有一个(子对象不拷贝) )
#(3)深拷贝
computer3=copy.deepcopy(computer)
print(computer,computer.cpu,computer.disk)
print(computer3,computer3.cpu,computer3.disk)
#深拷贝:主对象coputer和子对象cpu和disk都拷贝
深拷贝关系图