变量的赋值操作
只是形成的两个变量,实际还是一个对象
class CPU:
pass
class Disk:
pass
class Computer:
def __init__(self, cpu, disk):
self.cpu=cpu
self.disk=disk
#赋值变量
cpu1=CPU()
cpu2=cpu1
print(cpu1)
print(cpu2)
浅拷贝
一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝,源对象与拷贝对象会引用同一个对象
class CPU:
pass
class Disk:
pass
class Computer:
def __init__(self, cpu, disk):
self.cpu=cpu
self.disk=disk
#赋值变量
cpu1=CPU()
cpu2=cpu1
print(cpu1)
print(cpu2)
#类的浅拷贝
print('----------------------------------')
disk=Disk#创建一个硬盘类的对象
computer=Computer(cpu1, disk)
#浅拷贝
import copy
computer2=copy.copy(computer)
print(computer, computer.cpu, computer.disk)
print(computer2, computer2.cpu, computer2.disk)
深拷贝
使用copy模块的deepcopy函数,递归拷贝对象中包含子对象,源对象和拷贝对象所以的子对象也不相同
class CPU:
pass
class Disk:
pass
class Computer:
def __init__(self, cpu, disk):
self.cpu=cpu
self.disk=disk
#赋值变量
cpu1=CPU()
cpu2=cpu1
print(cpu1)
print(cpu2)
#类的浅拷贝
print('----------------------------------')
disk=Disk#创建一个硬盘类的对象
computer=Computer(cpu1, disk)
#浅拷贝
import copy
computer2=copy.copy(computer)
print(computer, computer.cpu, computer.disk)
print(computer2, computer2.cpu, computer2.disk)
print('---------------------------------')
#深拷贝
computer3=copy.deepcopy(computer)
print(computer, computer.cpu, computer.disk)
print(computer3, computer3.cpu, computer3.disk)