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
  • asp之家 网络编程 m.aspxhome.com