python中_del_还原数据的方法


Posted in Python onDecember 09, 2020

在数据存储过多时,我们会选择清除,不过有时候也需要找回一些我们之前删掉的数据。有的小伙伴可能会使用不同的方法分别完成,那么今天小编带来的_del_方法既能满足数据的清除,同时也可以把删除的数据重新找回来。考虑到大家对数据还原的方法比较急缺,接下来我们就_del_如何还原数据的方法进行讲解。

_del_在对象销毁时被调用,往往用于清除数据或还原环境等操作,比如在类中的其他普通方法中实现了插入数据库的语句,当对象被销毁时我们需要将数据还原,那么这时可以在__del__方法中实现还原数据库数据的功能。__del__被成为析构方法,同样和C++中的析构方法类似。

下面一个例子的执行顺序可以让大家加深对其的理解。

class Demo:
  def __init__(self):
    print('调用__init__方法')
  def func(self):
    print('这是一个普通的方法')
  def __del__(self):
    print('调用__del__方法')
d = Demo()
d.func()

当d.func()执行后,对象d没有在任何一个地方被继续引用,这时Python的垃圾回收机制会主动回收这个对象,即销毁d,此时自动调用__del__方法,运行结果如下。

调用__init__方法

这是一个普通的方法

调用__del__方法

注意:del 语句在删除变量时,是解除变量对数据的引用,而不是直接删除数据,不是把内存地址删了,只是删除了引用,数据就变为了一个可回收的对象,然后内存会被不定期回收。

不能定义任何名叫 del 的函数或者变量:

>>> def del(a):
 File "<stdin>", line 1
  def del(a):
     ^
SyntaxError: invalid syntax

相信经过本篇对于python中_del_的学习,小伙伴们已经可以独立进行数据的还原了。

python中的del用法扩展

由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。

if __name__=='__main__': 
 a=1 # 对象 1 被 变量a引用,对象1的引用计数器为1 
 b=a # 对象1 被变量b引用,对象1的引用计数器加1 
 c=a #1对象1 被变量c引用,对象1的引用计数器加1 
 del a #删除变量a,解除a对1的引用 
 del b #删除变量b,解除b对1的引用 
 print(c) #最终变量c仍然引用1

del删除的是变量,而不是数据。

if __name__=='__main__': 
 li=[1,2,3,4,5] #列表本身不包含数据1,2,3,4,5,而是包含变量:li[0] li[1] li[2] li[3] li[4] 
 first=li[0] #拷贝列表,也不会有数据对象的复制,而是创建新的变量引用 
 del li[0] 
 print(li) #输出[2, 3, 4, 5] 
 print(first) #输出 1

到此这篇关于python中_del_还原数据的方法的文章就介绍到这了,更多相关python中_del_如何还原数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Django实现图片文字同时提交的方法
May 26 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
pycharm 在windows上编辑代码用linux执行配置的方法
Oct 27 Python
详解Python 定时框架 Apscheduler原理及安装过程
Jun 14 Python
如何通过python画loss曲线的方法
Jun 26 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
python使用正则来处理各种匹配问题
Dec 22 Python
Python装饰器实现方法及应用场景详解
Mar 26 Python
Django bulk_create()、update()与数据库事务的效率对比分析
May 15 Python
python 常见的反爬虫策略
Sep 27 Python
python自动生成sql语句的脚本
Feb 24 Python
call在Python中改进数列的实例讲解
Dec 09 #Python
python中的对数log函数表示及用法
Dec 09 #Python
如何利用python正则表达式匹配版本信息
Dec 09 #Python
python基于win32api实现键盘输入
Dec 09 #Python
用python实现一个简单的验证码
Dec 09 #Python
使用Python提取文本中含有特定字符串的方法示例
Dec 09 #Python
python使用正则表达式匹配txt特定字符串(有换行)
Dec 09 #Python
You might like
试用php中oci8扩展
2015/06/18 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
pycharm 使用心得(四)显示行号
2014/06/05 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
Python 实现try重新执行
2019/12/21 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
最好的商品表达自己:Cafepress
2019/09/04 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
陈胜吴广起义口号
2014/06/20 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
新闻通讯稿模板
2015/07/22 职场文书
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
Python利用zhdate模块实现农历日期处理
2022/03/31 Python