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操作字典类型的常用方法(推荐)
May 16 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
python日志logging模块使用方法分析
May 23 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
浅谈Python 递归算法指归
Aug 22 Python
详解Django配置优化方法
Nov 18 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
python pyqtgraph 保存图片到本地的实例
Mar 14 Python
python学生管理系统的实现
Apr 05 Python
用python对oracle进行简单性能测试
Dec 05 Python
Python自动操作神器PyAutoGUI的使用教程
Jun 16 Python
如何利用python创作字符画
Jun 25 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中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
python中最小二乘法详细讲解
2021/02/19 Python
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
shell程序中如何注释
2012/02/17 面试题
护理自我鉴定范文
2013/10/06 职场文书
药学专业个人自我评价
2013/11/11 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
文体活动实施方案
2014/03/27 职场文书
完美的中文自荐信
2014/05/24 职场文书
承诺书范文
2014/06/03 职场文书
党性心得体会
2014/09/03 职场文书
基层党员对照检查材料
2014/09/24 职场文书
感恩节寄语2015
2015/03/24 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
python基础之停用词过滤详解
2021/04/21 Python
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers