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获取单个程序CPU使用情况趋势图
Mar 10 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
利用Python读取文件的四种不同方法比对
May 18 Python
使用Django启动命令行及执行脚本的方法
May 29 Python
python爬虫正则表达式之处理换行符
Jun 08 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
详解如何在Apache中运行Python WSGI应用
Jan 02 Python
Django框架自定义模型管理器与元选项用法分析
Jul 22 Python
pytorch打印网络结构的实例
Aug 19 Python
python中pyplot基础图标函数整理
Nov 10 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 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实现多级树型菜单
2006/10/09 PHP
PHP图片上传类带图片显示
2006/11/25 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
Python中random模块用法实例分析
2015/05/19 Python
python数据结构之图的实现方法
2015/07/08 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
python 自动重连wifi windows的方法
2018/12/18 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
团支部建设方案
2014/05/02 职场文书
社区先进事迹材料
2014/05/19 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
2016年元旦主持词
2015/07/06 职场文书
六一儿童节致辞
2015/07/31 职场文书
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis
人民币符号
2022/02/17 杂记