对象的浅拷贝和深拷贝
- 简要介绍
- 代码实现
简要介绍
浅拷贝:python拷贝一般都是浅拷贝。拷贝时,对象包含的子对象内容不拷贝。因此,源对象和拷贝对象引用同一个对象
深拷贝:使用copy模块的deepcopy函数,递归拷贝对象中包含的子对象。源对象和拷贝对象所有的子对象也不同
变量的数值操作:只是形成两个变量,实际上时指向同一个对象
代码实现
// #测试浅拷贝和深拷贝
import copyclass MobilePhone:def __init__(self,cpu,screen):self.cpu=cpuself.screem=screenclass CPU:def calculate(self):print("算你个12345")print("cpu对象:",self)
class Screen:def show(self):print("显示一个好看的画面,亮瞎你的眼")print("screen对象",self)
#测试变量的赋值
c1=CPU()
c2=c1
print(c1)
print(c2)#测试浅拷贝
s1=Screen()
m1=MobilePhone(c1,s1)
m2=copy.copy(m1)print(m1,m1.cpu,m1.screem)
print(m2,m2.cpu,m2.screem)
#测试深复制
m3=copy.deepcopy(m1)
print(m1,m1.cpu,m1.screem)
print(m3,m3.cpu,m3.screem)
变量赋值操作结果:
浅拷贝结果:
深拷贝结果