编码基础知识库:类的浅拷贝与深拷贝含义及使用详解(延展)
表达式的表达式操作方式是怎样展开的?
而已逐步形成了三个表达式,但事实上却是对准了同一第一类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:,cpu1,id(cpu1),\n表达式表达式值cpu2:,cpu2,id(cpu2))
甚么叫类的浅复本?
Python标识符中的复本通常都是浅复本。程序标识符复本时,不对第一类所包涵的子第一类的文本展开复本。
因而,在前述合作开发标识符中,源第一类与复本第一类单厢提及同一子第一类。# (2)类的浅复本
disk = Disk() # 建立三个硬碟类的第一类
print(硬碟类第一类原初值:,disk)
computer = Computer(cpu1,disk)# 建立三个计算机系统类的第一类
import copy
computer1 = copy.copy(computer)
print(computer原初值:,computer,computer.cpu,computer.disk)
print(computer浅复本:,computer1,computer1.cpu,computer1.disk)
什么叫类的深复本?
Python中采用copy模块的 deepcopy() 函数,递归复本第一类中所包涵的子第一类。此时,源第一类和复本
所拥有的子第一类也不相同。 # 类的深复本computer2 = copy.deepcopy(computer)print(computer原初值:,computer,computer.cpu,computer.disk)
print(computer深复本:,computer2,computer2.cpu,computer2.disk)