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 相关文章推荐
Python写的服务监控程序实例
Jan 31 Python
详细解析Python中__init__()方法的高级应用
May 11 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
JavaScript实现一维数组转化为二维数组
Apr 17 Python
Python设计模式之桥接模式原理与用法实例分析
Jan 10 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 Python
python+opencv实现车牌定位功能(实例代码)
Dec 24 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 Python
python如何利用cv2模块读取显示保存图片
Jun 04 Python
用Python爬取某乎手机APP数据
Jun 15 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实现Ftp用户的在线管理的代码
2007/03/06 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
2013/06/24 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
javascript实现信息增删改查的方法
2015/07/25 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
浅谈Python爬虫基本套路
2019/03/25 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
农药学硕士毕业生自荐信
2013/09/25 职场文书
画展邀请函
2015/01/31 职场文书
战马观后感
2015/06/08 职场文书
教师节联欢会主持词
2015/07/04 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python