python中_del_还原数据的方法
作者:小妮浅浅 时间:2022-07-28 18:49:14
在数据存储过多时,我们会选择清除,不过有时候也需要找回一些我们之前删掉的数据。有的小伙伴可能会使用不同的方法分别完成,那么今天小编带来的_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
来源:https://www.py.cn/jishu/jichu/21781.html
标签:python,del,还原数据
0
投稿
猜你喜欢
python+Matplotlib 绘制带置信区间的折线图
2022-04-29 06:23:40
SQL Server 2000中生成XML的小技巧
2009-02-13 17:12:00
js简单实现Select互换数据的方法
2023-07-20 00:50:46
python 使用事件对象asyncio.Event来同步协程的操作
2023-02-24 12:46:41
XML文件的显示——CSS和XSL
2007-10-15 18:48:00
如何防止页面中的敏感信息被提取
2008-05-04 11:59:00
利用ASP输出excel文件一例
2008-06-06 13:18:00
Python3 mmap内存映射文件示例解析
2021-07-14 15:05:50
File input 的样式和文字的更改方法__适用于Firefox、IE等浏览器
2009-10-13 21:05:00
selenium+python自动化测试之环境搭建
2022-05-15 13:51:32
如何防止Application对象在多线程访问中出现错误?
2009-11-22 19:18:00
20个Javascript手风琴折叠菜单
2009-10-12 12:09:00
python爬虫之selenium库的安装及使用教程
2021-04-22 20:20:46
SQL Server 安全检查列表全攻略
2008-01-29 13:31:00
通过python实现windows桌面截图代码实例
2023-11-19 03:46:27
Python高阶函数与装饰器函数的深入讲解
2023-10-04 12:42:41
教你在MySQL 5.0以上版本中配置主从库
2009-01-04 13:17:00
python中list循环语句用法实例
2022-09-12 15:08:05
详解SQL Server分布式查询
2010-09-19 09:07:00
Python实现利用163邮箱远程关电脑脚本
2023-08-29 10:08:08