首页 > 代码库 > python之浅拷贝和深拷贝
python之浅拷贝和深拷贝
1、浅拷贝
1>赋值:从下面的例子我们可以看到赋值之后新变量的内存地址并没有发生任何变化,实际上python中的赋值操作不会开辟新的内存空间,它只是复制了新对象的引用,也就是说除了b这个名字以外,没有其他的内存开销,这时如果修改了a的值,就会影响b的值,同理,如果修改b的值,也会影响a的值。
2>浅拷贝是对引用的拷贝,它只拷贝了副对象,所以说id(a)!=id(c),那么对象内部的资源依然是引用,所以内部id(a[0])==id(c[0])、id(a[2][0])==id(c[2][0]),那如果有嵌套的元素,修改浅拷贝的值,原始变量同时也被修改
2、深拷贝
深拷贝是对对象资源的拷贝,id(a)!=id(d),它的内部资源如果没有嵌套的情况下。id(a[0])==id(d[0]);如果有嵌套的情况下,id(a[2])!=id(d[2])
所有参数在python里都是按引用传递
如果你在函数里修改了参数,原始的参数也被改变了。
如对列表进行操作之后原来的列表会被改变。
python之浅拷贝和深拷贝
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。