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 相关文章推荐
编写自定义的Django模板加载器的简单示例
Jul 21 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
新手如何快速入门Python(菜鸟必看篇)
Jun 10 Python
对numpy中的transpose和swapaxes函数详解
Aug 02 Python
pandas条件组合筛选和按范围筛选的示例代码
Aug 26 Python
Python中断多重循环的几种方式详解
Feb 10 Python
python实现126邮箱发送邮件
May 20 Python
python线程池如何使用
May 28 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
Feb 06 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
php下目前为目最全的CURL中文说明
2010/08/01 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
PHP错误处理函数
2016/04/03 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
javascript常用的设计模式
2017/02/09 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
vue自定义正在加载动画的例子
2019/11/14 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
python实现石头剪刀布程序
2021/01/20 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
python文件读取失败怎么处理
2020/06/23 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
工程部岗位职责
2015/02/10 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
四年级作文之植物
2019/09/20 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
关于vue中如何监听数组变化
2021/04/28 Vue.js
python scrapy简单模拟登录的代码分析
2021/07/21 Python
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js