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 正则式 概述及常用字符
May 07 Python
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
Python中datetime模块参考手册
Jan 13 Python
python中virtualenvwrapper安装与使用
May 20 Python
python 图像平移和旋转的实例
Jan 10 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
Python将文字转成语音并读出来的实例详解
Jul 15 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 Python
Python3 把一个列表按指定数目分成多个列表的方式
Dec 25 Python
python 爬取小说并下载的示例
Dec 07 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
Nov 01 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
javascript 小型动画组件与实现代码
2010/06/02 PHP
PHP生成二维码的两个方法和实例
2014/07/01 PHP
Php-Redis安装测试笔记
2015/03/05 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Python3.7 dataclass使用指南小结
2019/02/22 Python
python实现维吉尼亚加密法
2019/03/20 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
绘画设计学生的个人自我评价
2013/09/20 职场文书
机械专业技术员求职信
2014/06/14 职场文书
单位个人查摆问题及整改措施
2014/10/28 职场文书
宾馆客房管理制度
2015/08/06 职场文书
银行服务理念口号
2015/12/25 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
springboot用户数据修改的详细实现
2022/04/06 Java/Android
Python循环之while无限迭代
2022/04/30 Python