赋值:

  可变类型:赋值前后id不会变,赋值后的数据会随源数据变化;

  不可变类型:赋值前后id不会变,赋值后的数据不会随源数据变化;

 

浅拷贝(copy):

  可变类型:copy前后id会变,可变类型中存储的可变类型和不可变类型复制前后id不变;源数据所包含的可变类型数据变化时,copy后数据会变(引用);源数据所包含的不可变类型变化时,copy后的数据不会变;

  不可变类型:copy前后id不会变,源数据变化,copy不会变化(同赋值引用中不可变类型)。

 

深拷贝(deepcopy):

  可变类型:deepcopy前后id会变,源数据变化不会影响deepcopy后的数据;可变类型中存储的不可变类型复制前后id不变;存储的可变类型复制前后id改变;

  不可变类型:deepcopy前后id不会变,源数据变化不会影响deepcopy后的数据。  

 

本质原因:

id:

  可变类型:值相同时,不同变量id不一致;

  不可变类型:值相同时,不同变量id一致;

拷贝的不是值,而是对应值的内存地址;