Python浅复制中对象生存周期实例分析


Posted in Python onApril 02, 2018

本文实例讲述了Python浅复制中对象生存周期。分享给大家供大家参考,具体如下:

Python的浅复制以及深复制我了解的并不多,我不清楚shutil中的copy1和copy2是不是算是浅复制和深复制?这两个操作,一个是文件属性重建,还有一个是文件属性不变。不知道对象的复制是否可以以此类比?

在复制之前,为了能够观看一下GC的执行,定义一个特殊的类和对象。测试代码如下:

class Demo:
    def __del__(self):
       print("Removing{0}".format(id(self)))
x = Demo()
del x

程序执行结果如下:

E:\01_workspace\02_programme_language\03_python\03_OOP\2017\08>pythoncopy1.py
Removing1772226785520

接下来构造浅复制的例子:

>>>obj_list1 = [Demo(),Demo()]
>>>obj_list2 = obj_list1[:]
>>> del obj_list1
>>> del obj_list2
Removing1902510644416
Removing1902510644360

从上面的结果看,第一次del并没有触发对象销毁的方法执行。这是在交互界面中进行调试出现的结果,如果代码是写到一个具体的文件中,那么程序执行的结果有可能不同。当所有的语句都写到同一个文件中的时候,文件中的对象作用域会有轻微的调整。这是值得我们注意的。

另一种常见的浅复制方法:

>>> o1 =o2 = Demo()
>>> del o1
>>> del o2
Removing1902510136568

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
深入解析Python中的线程同步方法
Jun 14 Python
python3实现暴力穷举博客园密码
Jun 19 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
Python实现文件内容批量追加的方法示例
Aug 29 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python中datetime模块中strftime/strptime函数的使用
Jul 03 Python
Python 脚本获取ES 存储容量的实例
Dec 27 Python
python实现简易版学生成绩管理系统
Jun 22 Python
图文详解matlab原始处理图像几何变换
Jul 09 Python
Python实现归一化算法详情
Mar 18 Python
Python if else条件语句形式详解
Mar 24 Python
python基础教程项目五之虚拟茶话会
Apr 02 #Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 #Python
python基础教程项目四之新闻聚合
Apr 02 #Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
Apr 02 #Python
python基础教程项目三之万能的XML
Apr 02 #Python
python opencv检测目标颜色的实例讲解
Apr 02 #Python
浅谈python配置与使用OpenCV踩的一些坑
Apr 02 #Python
You might like
PHP文件上传实例详解!!!
2007/01/02 PHP
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
AngularJS HTML编译器介绍
2014/12/06 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
小程序实现密码输入框
2020/11/16 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
Fabric 应用案例
2016/08/28 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
pd.DataFrame统计各列数值多少的实例
2019/12/05 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
工商管理实习生自我鉴定范文
2013/12/18 职场文书
秋季运动会加油稿200字
2014/01/11 职场文书
护士在校生自荐信
2014/02/01 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL