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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
Python实现竖排打印传单手机号码易撕条
Mar 16 Python
python3中set(集合)的语法总结分享
Mar 24 Python
Tensorflow简单验证码识别应用
May 25 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
详解Python下ftp上传文件linux服务器
Jun 21 Python
对python模块中多个类的用法详解
Jan 10 Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
python轮询机制控制led实例
May 03 Python
python 线程的五个状态
Sep 22 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经典的给图片加水印程序
2006/12/06 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
js分页工具实例
2015/01/28 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
js实现导航跟随效果
2018/11/17 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
一则python3的简单爬虫代码
2014/05/26 Python
python logging类库使用例子
2014/11/22 Python
python ddt实现数据驱动
2018/03/14 Python
python获取引用对象的个数方式
2019/12/20 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
基于CSS3实现的漂亮Menu菜单效果代码
2015/09/10 HTML / CSS
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
请介绍一下Ant
2016/07/22 面试题
上课迟到检讨书
2015/05/06 职场文书
交通事故代理词范文
2015/05/23 职场文书
会议主持词通用版
2019/04/02 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python
详解Python常用的魔法方法
2021/06/03 Python