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实现基于权重的随机数2种方法
Apr 28 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
单链表反转python实现代码示例
Feb 08 Python
Python使用cx_Oracle模块操作Oracle数据库详解
May 07 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
python request 模块详细介绍
Nov 10 Python
python基础之停用词过滤详解
Apr 21 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+dbfile开发小型留言本
2006/10/09 PHP
用函数读出数据表内容放入二维数组
2006/10/09 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
深入认识javascript中的eval函数
2009/11/02 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
Python grpc超时机制代码示例
2020/09/14 Python
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
产品陈列协议书(标准版)
2014/09/17 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
处级干部考察材料
2014/12/24 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
初中重阳节活动总结
2015/05/05 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
python 爬取天气网卫星图片
2021/06/07 Python
python异步的ASGI与Fast Api实现
2021/07/16 Python
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis