扣丁学堂简述什么是Python赋值与拷贝.doc

扣丁学堂简述什么是Python赋值与拷贝.doc

ID:57577088

大小:186.00 KB

页数:5页

时间:2020-08-27

扣丁学堂简述什么是Python赋值与拷贝.doc_第1页
扣丁学堂简述什么是Python赋值与拷贝.doc_第2页
扣丁学堂简述什么是Python赋值与拷贝.doc_第3页
扣丁学堂简述什么是Python赋值与拷贝.doc_第4页
扣丁学堂简述什么是Python赋值与拷贝.doc_第5页
资源描述:

《扣丁学堂简述什么是Python赋值与拷贝.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、扣丁学堂简述什么是Python赋值与拷贝关于Python开发技术想必小伙伴们并不陌生,但是对于Python赋值与拷贝有多少的小伙伴了解的透彻呢?本篇文章扣丁学堂Python培训小编就和大家分享一下Python赋值与拷贝,对此感兴趣的小伙伴下面就随小编一起来看一下吧。变量与赋值:在Python中,一切皆为对象,对象通过「变量名」引用,「变量名」更确切的叫法是「名字」,好比我们每个人都有自己的名字一样,咱们通过名字来代指某个人,代码里面通过名字来指代某个对象。变量赋值就是给对象绑定一个名字,赋值并不会拷贝对象。好比我们出生的

2、时候父母就要给我们取一个名字一样,给人取个绰号并不来多出一个人来,只是多一个名字罢了。两个对象做比较有两种方式,分别是:is与==,is比较的是两个对象是否相同,通过对象的ID值可识别是否为相同对象,==比较的是两个对象的值是否相等。>>>x1=[1,2]>>>x2=[1,2]>>>x1isx2False>>>id(x1)4338854088>>>id(x2)4338904392>>>x1==x2Truex1和x2的值虽然相同,但在内存中是两个独立的不同的对象,占据不同的内存空间,就好比两个长得一样的苹果摆在桌子上,实则

3、为两个不同的物体。>>>x3=x2>>>x3isx2True>>>id(x3)4338904392前面说了,赋值是给对象绑定名字,这里我们只不过是给x2对应的那个对象绑定了一个新的名字叫x3,这就好比桌上放了一个苹果,开始给它贴了一个x2的标签,后来又给它添了一个x3的标签,本质上还是同一个苹果,所以,x2和x3所指的其实是同一个对象。通过x2修改对象时,x3也会跟着变化,因为本质上它们是同一个对象,这就好比张三和小张是同一个人时,给张三添衣服其实就是给小张添衣服。>>>x2.append(3)>>>x2[1,2,3]>

4、>>x3[1,2,3]但是,当我给x2重新赋值时,相当于x2不再引用之前的对象,而引用新对象,x3依然引用之前的对象。好比桌上一大苹果开始贴了x2和x3两个标签,给x2重新赋值就相当于把x2标签贴到另外一个苹果,但是x3还是贴在老苹果身上。>>>x2=[3,4]>>>x3[1,2,3]对象拷贝:在业务中有时我们需要复制一个对象,但是又不想对原对象产生副作用,肯定不能通过赋值给一个新变量来解决(因为赋值不是拷贝对象),所以Python专门提供了一种拷贝机制,基于原对象快速创建出一个含有相同值的对象。该功能由copy模块提供

5、。拷贝又分为浅拷贝和深拷贝。>>>s=[1,2,3]>>>sc=copy.copy(s)#浅拷贝>>>sc[1,2,3]>>>sdc=copy.deepcopy(s)#深拷贝>>>sdc[1,2,3]拷贝出来的对象只是值相同,实为不同的对象:>>>s==sc==sdcTrue>>>sisscFalse>>>sissdcFalse那么浅拷贝(shallowcopy)与深拷贝(deepcopy)有什么区别呢?对于不可变对象,比如整数、字符串、元组、还有由这些不可变对象组成的集合对象,浅拷贝和深拷贝没有区别,都是拷贝一个新对象

6、两者的区别在于拷贝组合对象,比如列表中还有列表,字典中还有字典或者列表的情况时,浅拷贝只拷贝了外面的壳子,里面的元素并没有拷贝,而深拷贝则是把壳子和里面的元素都拷贝了一份新的。来看一个例子:>>>x=[2,3]>>>y=[7,11]>>>z=[x,y]>>>a=copy.copy(z)#浅拷贝>>>a[0]isz[0]True拷贝出来的对象a中的元素引用的是x和y,当你修改x的值,a也会跟着变。>>>b=copy.deepcopy(z)#深拷贝>>>b[0]isz[0]False对于深拷贝,里面的元素也重新拷贝了一份,拷

7、贝了一份与x和y等值的两个元素,修改x和y的值,不会对b产生影响。对列表的切片拷贝z[:]或者是调用对象的copy方法list.copy()都属于浅拷贝。对于自定义对象,我们还可以自己实现__copy__方法和__deepcopy__方法。最后想要了解更多关于Python方面内容的小伙伴,请关注扣丁学堂Python培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的UI设计视频,通过千锋扣丁学堂金牌讲师在线录制的Python开发教程,让你快速掌握Python从入门到精通开发实战技能。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。