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 相关文章推荐
tensorflow识别自己手写数字
Mar 14 Python
Python hashlib模块用法实例分析
Jun 12 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
如何使用python把ppt转换成pdf
Jun 29 Python
Python正则表达式匹配日期与时间的方法
Jul 07 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
Jun 30 Python
Pycharm中如何关掉python console
Oct 27 Python
python 操作excel表格的方法
Dec 05 Python
用python计算文件的MD5值
Dec 23 Python
利用python做表格数据处理
Apr 13 Python
Python基础之函数嵌套知识总结
May 23 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新手上路(十一)
2006/10/09 PHP
php动态生成JavaScript代码
2009/03/09 PHP
php 获取select下拉列表框的值
2010/05/08 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
python调用cmd命令行制作刷博器
2014/01/13 Python
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
详解Python中的文本处理
2015/04/11 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
Python实现图片添加文字
2019/11/26 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
保送生自荐信范文
2013/10/06 职场文书
函授大专自我鉴定
2013/11/01 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
社团活动总结
2014/04/28 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python