浅拷贝 Python拷贝一般都是浅拷贝 拷贝时 对象包含的子对象内容不拷贝 因此 源对象和拷贝对象会引用同一个子对象。
深拷贝 使用copy模块的deepcopy函数 递归拷贝对象中包含的子对象 故源对象和拷贝对象所有的子对象都不相同。
# 浅拷贝 disk Disk() # 创建一个硬盘类的对象 computer Computer(cpu1, disk) # 创建一个计算机类的对象 import copy computer2 copy.copy(computer) print(computer, computer.cpu, computer.disk) print(computer2, computer2.cpu, computer2.disk) # computer和computer2是两个不同的对象 输出id不同 但是两个所包含的子对象cpu disk的id是相同的 # 这是因为浅拷贝只对Computer类的实例对象进行拷贝 然后computer1和computer2指向这个拷贝 但是不对子对象 即disk和cpu的实例对象进行拷贝 # 所以computer1和computer2的disk和cpu依然指向Computer的实例对象 所以Computer的对象有两个 而cpu和disk只有1份



