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中http请求方法库汇总
Jan 06 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
VSCode下配置python调试运行环境的方法
Apr 06 Python
python矩阵转换为一维数组的实例
Jun 05 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
django之静态文件 django 2.0 在网页中显示图片的例子
Jul 28 Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 Python
matplotlib.pyplot画图并导出保存的实例
Dec 07 Python
python保存log日志,实现用log日志画图
Dec 24 Python
详解python 支持向量机(SVM)算法
Sep 18 Python
python获得命令行输入的参数的两种方式
Nov 02 Python
Python实现冒泡排序算法的完整实例
Nov 04 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数组函数知识汇总
2016/05/12 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
Python代码的打包与发布详解
2014/07/30 Python
python决策树之CART分类回归树详解
2017/12/20 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
tensorflow如何批量读取图片
2019/08/29 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
工作会议欢迎词
2014/01/16 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
学习经验演讲稿
2014/05/10 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
保外就医申请书范文
2015/08/06 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
go类型转换及与C的类型转换方式
2021/05/05 Golang
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python