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 相关文章推荐
讲解Python中fileno()方法的使用
May 24 Python
Python递归函数定义与用法示例
Jun 02 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
Python入门必须知道的11个知识点
Mar 21 Python
简单实现Python爬取网络图片
Apr 01 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
python定时任务 sched模块用法实例
Nov 04 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
May 18 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 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
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
python基础教程之序列详解
2014/08/29 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
物流专业大学生求职信范文
2013/10/28 职场文书
应届生护士求职信
2013/11/01 职场文书
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
表演方阵解说词
2014/02/08 职场文书
接待员岗位责任制
2014/02/10 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
Python中相见恨晚的技巧
2021/04/13 Python
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
浅谈JavaScript作用域
2021/12/06 Javascript