Python浅拷贝深拷贝详解总结

2022-12-19 0 684

# python气门第一类和不气门第一类

id物理地址维持不变的情形下,value能发生改变,称作气门类别:list、dic、set

虽然id维持不变,故在原本的物理地址内,没开拓捷伊内部空间,而要间接在原选定物理地址上面修正的。

Python浅拷贝深拷贝详解总结

value发生改变,id发生改变,为不气门类别:str、tuple、int、bool、float

# 浅复本和深复本:

在python中,第一类表达式并没复本那个第一类,而要复本了那个第一类的提及

1.间接表达式,预设浅复本传达第一类的提及,相等于多了两个捷伊条码,原初条目发生改变,被表达式的第一类也会发生改变,且id仍旧完全相同,但当第一类是不气门类别时,间接表达式第一类的id和值不能骤然发生改变(如下表所示图右图)

2.浅复本,没复本子第一类,相连接两个第一类,故计算结果发生改变,子第一类发生改变,浅复本有三种情形:

(1)当拷贝的值是不气门第一类时,id完全相同,虽然是不气门类别,发生改变值后,多于该id和值发生改变,间接表达式第一类和浅复本第一类id和值维持不变

Python浅拷贝深拷贝详解总结
a是str

(2)当是气门第一类时,有三种情形:

1.拷贝的第一类中无繁杂子第一类,发生改变值后,该值和间接表达式第一类的id和值一同发生改变,浅复本第一类的id和值维持不变

Python浅拷贝深拷贝详解总结

2.若发生改变的第一类所含繁杂子第一类(气门类别嵌入气门类别,间接表达式第一类仍旧跟原第一类完全一致,比如a=[1,2,[a,b]]中的[a,b]),发生改变a[2]繁杂子第一类的值,浅复本第一类值变动且id维持不变,发生改变a(a却是气门类别),浅复本第一类值维持不变且id维持不变。因为浅复本繁杂子第一类的保存方式是以提及方式存储的(即=),故修正浅复本的值和原本的值都会发生改变繁杂子第一类的值。

Python浅拷贝深拷贝详解总结

3.深复本,复本第一类是两个捷伊个体,怎么样发生改变id都跟原本不同,值不能被影响。

本文图片源自于,感谢提供图片便于理解。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务