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中使用mongoengine操作MongoDB教程
Apr 24 Python
python安装教程 Pycharm安装详细教程
May 02 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
Python循环中else,break和continue的用法实例详解
Jul 11 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
python或C++读取指定文件夹下的所有图片
Aug 31 Python
python编写猜数字小游戏
Oct 06 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
python实现删除列表中某个元素的3种方法
Jan 15 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
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
摄影实习自我鉴定
2013/09/20 职场文书
退休感言
2014/01/28 职场文书
抽样调查项目计划书
2014/04/24 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
安全教育培训心得体会
2016/01/15 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
用python批量解压带密码的压缩包
2021/05/31 Python
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL