1.==,is的使用
![](http://upload-images.jianshu.io/upload_images/6078268-13c8c2fa3af51a1e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-c9e565bb49322d8e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
总结
·is是比较两个引用是否指向了同一个对象(引用比较)。
·==是比较两个对象是否相等。
2.深拷贝、浅拷贝
1.浅拷贝
浅拷贝是对于一个对象的顶层拷贝
通俗的理解是:拷贝了引用,并没有拷贝内容
![](http://upload-images.jianshu.io/upload_images/6078268-a3074d338a675809.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-28dc400644f57123.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2.深拷贝
深拷贝是对于一个对象所有层次的拷贝(递归)
![](http://upload-images.jianshu.io/upload_images/6078268-7be43270b9cb4ac0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
进一步理解拷贝
![](http://upload-images.jianshu.io/upload_images/6078268-0ad9a123bb19162c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-020a4dd88c302f70.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-a2e57beebfd517fb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-4f7a9bc68f8f6761.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-74f14c1d735ad9b2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-e50dd1a997eb935e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3.拷贝的其他方式
浅拷贝对不可变类型和可变类型的copy不同
![](http://upload-images.jianshu.io/upload_images/6078268-9ed463e3325f3ee8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-dc4874e2ab810a69.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
·分片表达式可以赋值一个序列
![](http://upload-images.jianshu.io/upload_images/6078268-793cebe577cf7dcb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
·字典的copy方法可以拷贝一个字典
![](http://upload-images.jianshu.io/upload_images/6078268-1b516c2760f5d6ba.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
·有些内置函数可以生成拷贝(list)
![](http://upload-images.jianshu.io/upload_images/6078268-6cbb6f1ed801a8a7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
·copy模块中的copy函数
![](http://upload-images.jianshu.io/upload_images/6078268-8c07c3a6d1a62658.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3.属性property
1.私有属性添加getter和setter方法
![](http://upload-images.jianshu.io/upload_images/6078268-1d41e004b7d47eb2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-5220105518c237fb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2.使用property升级getter和setter方法
![](http://upload-images.jianshu.io/upload_images/6078268-87ab438c563301be.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
运行结果:
![](http://upload-images.jianshu.io/upload_images/6078268-e5b7aed1b5f25fc3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-33a614ffecc13b65.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
运行结果:
![](http://upload-images.jianshu.io/upload_images/6078268-0e00539bd5d22ebd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3.使用property取代getter和setter方法
@property成为属性函数,可以对属性赋值时做必要的检查,并保证代码的清晰短小,主要有2个作用
·将方法转换为只读
·重新实现一个属性的设置和读取方法,可做边界判定
![](http://upload-images.jianshu.io/upload_images/6078268-122df7719672ee8c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
运行结果:
![](http://upload-images.jianshu.io/upload_images/6078268-c97ccc6a9bcf0f30.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-40f016453b57157b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/6078268-52eacf2bb29953e6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
运行结果:
![](http://upload-images.jianshu.io/upload_images/6078268-540132efc52c3d43.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群
626062078,我们一起学Python!