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文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
Python开发实例分享bt种子爬虫程序和种子解析
May 21 Python
使用Python制作获取网站目录的图形化程序
May 04 Python
Python正则表达式使用范例分享
Dec 04 Python
详解Python在七牛云平台的应用(一)
Dec 05 Python
python+numpy+matplotalib实现梯度下降法
Aug 31 Python
Python enumerate函数功能与用法示例
Mar 01 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
详解用python计算阶乘的几种方法
Aug 14 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
pytorch 实现在测试的时候启用dropout
May 27 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 友好URL的实现(吐血推荐)
2008/10/04 PHP
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
python实现百度关键词排名查询
2014/03/30 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
解决python删除文件的权限错误问题
2018/04/24 Python
python模拟表单提交登录图书馆
2018/04/27 Python
python 日期操作类代码
2018/05/05 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
Python的pygame安装教程详解
2020/02/10 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
几个Shell Script面试题
2014/04/18 面试题
拓展训练激励口号
2014/06/17 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
庆七一晚会主持词
2015/06/30 职场文书