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 相关文章推荐
py2exe 编译ico图标的代码
Mar 08 Python
python类定义的讲解
Nov 01 Python
Python中使用select模块实现非阻塞的IO
Feb 03 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
python遍历文件夹下所有excel文件
Jan 03 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
Python提取特定时间段内数据的方法实例
Apr 01 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
小偷PHP+Html+缓存
2006/12/20 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
linux下编译安装memcached服务
2014/08/03 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
Python实现嵌套列表去重方法示例
2017/12/28 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
Ajax的优点和缺点
2014/11/21 面试题
应届大学生求职的自我评价
2013/11/17 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
2015年药房工作总结
2015/04/25 职场文书
美容院管理规章制度
2015/08/05 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers