4.浅拷贝与深拷贝

2019-06-22  本文已影响0人  辉神来了

可变(mutable)参数和不可变(immutable)参数

在Python中string、tuple和number是不可变对象,而dict、list等是可变对象;不可变对象在进行重新赋值的时候,实际上市将原始值丢弃,将变量指向一个新值,可变对象的可变实质上是指更改可变对象中的子对象,比如list中的item元素的更改

直接赋值:其实就是对象的引用(别名)


image.png
image.png

浅拷贝

不拷贝子对象(针对子对象中的item),当子对象进行更改的时候,原始对象也会改变,常见操作,字典的copy()函数、copy模块的copy()函数(两个一模一样)


image.png

深拷贝

会拷贝子对象,当原始对象子对象进行更改的时候,原始对象不会改变
常见操作:copy()模块的deepcopy()函数


image.png

总结

上一篇 下一篇

猜你喜欢

热点阅读