python 赋值,浅拷贝,深拷贝,copy,切片区别
Python中一切皆对象,在赋值a=0中,先创建对象,在把变量a分配给对象,变量只是对象的标注
深拷贝⛳:复制对象后并创建了一个新对象,内存地址不一样(无论是否嵌套,都是一个独立对象),改变其中一个值不影响另一个.
浅拷贝和copy,切片🎃:分两中情况
内置类型的构造方法或[:]以及copy.copy做的是浅拷贝
-
不可变对象时(int,string,tuple):直接原对象引用(和赋值一样),内存地址一样,改变其中一个值不影响另一个(不可变对象:改变值,实际新创建了一个对象)
-
可变对象时:外层是新对象,内存地址不一样(改变其中一个值不影响另一个),嵌套层是引用同一对象,内存地址一样(嵌套层改变其中一个值,另一个相应改变)
赋值🍳:直接对原对象引用(不可变对象时:改变值,实际新创建了一个对象,不影响,可变对象时:改变其中一个值,外层或嵌套层相应改变)
···
1.深拷贝:
内存地址:不一样
修改值:不影响
2.浅拷贝和copy,切片
内存地址:外层地址不一样,里层地址一样.
修改值:外层值不变,里面值改变.
3.赋值
地址和修改值:地址一样,值改变
python 赋值,浅拷贝,深拷贝,copy,切片区别
https://centyuan.github.io/2023/11/06/Python从入门到放弃/python 赋值,浅拷贝,深拷贝,copy,切片区别/