赋值:
可变类型:赋值前后id不会变,赋值后的数据会随源数据变化;
不可变类型:赋值前后id不会变,赋值后的数据不会随源数据变化;
浅拷贝(copy):
可变类型:copy前后id会变,可变类型中存储的可变类型和不可变类型复制前后id不变;源数据所包含的可变类型数据变化时,copy后数据会变(引用);源数据所包含的不可变类型变化时,copy后的数据不会变;
不可变类型:copy前后id不会变,源数据变化,copy不会变化(同赋值引用中不可变类型)。
深拷贝(deepcopy):
可变类型:deepcopy前后id会变,源数据变化不会影响deepcopy后的数据;可变类型中存储的不可变类型复制前后id不变;存储的可变类型复制前后id改变;
不可变类型:deepcopy前后id不会变,源数据变化不会影响deepcopy后的数据。
本质原因:
id:
可变类型:值相同时,不同变量id不一致;
不可变类型:值相同时,不同变量id一致;
拷贝的不是值,而是对应值的内存地址;