一、变量的赋值操作
定义:只是形成2个变量,实际上还是指向同一个对象
代码如下:
内存示意图:
将创建CPU类的实例对象赋值给cpu1进行储存,所以cpu1的id为0212,
然后将cpu1赋值给cpu2,cpu2的id也为0212;
cpu1和cpu2指向同一个类的实例对象。
在一个类中,有一个类的实例对象,用2个变量去存储。
二、浅拷贝
定义:
python拷贝一般都是浅拷贝,拷贝时,只拷贝父对象,不会拷贝对象的内部的子对象,因此,源对象与拷贝对象会引用同一个子对象
代码:
代码执行结果为:可以看到computer和computer2的对象不同,但是所包含的子对象computer.cpu1和computer2.cpu1一样,computer.disk和computer2.disk一样
内存示意图:
三、深拷贝
定义:
使用copy模块的deepcopy函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象也不相同。
代码:
执行结果为:
代码执行结果为:可以看到computer和computer3的对象不同,而且所包含的子对象computer.cpu1和computer3.cpu1也不一样,computer.disk和computer3.disk也不一样。
内存示意图: