python之深拷贝、浅拷贝

如上图,变量a和b的内存地址是相同的,说明python中的赋值可以看作是引用,变量指向了同一个内存空间

python之深拷贝、浅拷贝

copy模块中的deepcopy就展示了深拷贝,c就是通过a的深拷贝

python之深拷贝、浅拷贝

测试一下,追加a列表,c并没有发生变化,c指向的是一个新的内存空间

python之深拷贝、浅拷贝

python之深拷贝、浅拷贝

这段代码是要说明copy模块下的copy是浅拷贝,但是拷贝对象的id 地址是不同的。虽然e和f的内存地址不同,好似是深拷贝,但其实e在赋值的时候指向的是一个新的列表,这个新的列表里又指向了a和d;同理 f copy e也是如此

python之深拷贝、浅拷贝

这段代码要说明copy模块下的deepcopy是深拷贝,拷贝对象的id 地址是不同的,c指向了一个新的地址,但是列表扔指向了之前的a和b;e通过深拷贝,指向了一个新的地址,同时也拷贝了新的a和b(给了a和b一个新的地址)。

深拷贝和浅拷贝可以影响对拷贝变量值得修改。

相关文章: