python中_del_还原数据的方法

 更新时间:2020年12月09日 15:04:39   作者:小妮浅浅  
在本篇内容里小编给大家整理了一篇关于python中_del_还原数据的方法,有兴趣的朋友们可以学习下。

在数据存储过多时,我们会选择清除,不过有时候也需要找回一些我们之前删掉的数据。有的小伙伴可能会使用不同的方法分别完成,那么今天小编带来的_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_如何还原数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Tensorflow高阶读写教程

    基于Tensorflow高阶读写教程

    今天小编就为大家分享一篇基于Tensorflow高阶读写教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 对tensorflow 的模型保存和调用实例讲解

    对tensorflow 的模型保存和调用实例讲解

    今天小编就为大家分享一篇对tensorflow 的模型保存和调用实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python破解极验滑动验证码详细步骤

    Python破解极验滑动验证码详细步骤

    学习python知识越来越多,大家都知道极验验证码应用非常广泛,今天小编就给大家分享Python破解极验滑动验证码的详细步骤,对Python极验滑动验证码相关知识感兴趣的朋友一起看看吧
    2021-05-05
  • Python多线程原理与用法详解

    Python多线程原理与用法详解

    这篇文章主要介绍了Python多线程原理与用法,简单描述了多线程的概念、原理并结合实例形式分析了Python多线程创建、启动、各种锁机制、队列及相关函数使用技巧,需要的朋友可以参考下
    2018-08-08
  • Python中的变量和作用域详解

    Python中的变量和作用域详解

    这篇文章主要介绍了Python中的变量和作用域详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Python3压缩和解压缩实现代码

    Python3压缩和解压缩实现代码

    这篇文章主要介绍了Python3压缩和解压缩实现代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python中的赋值、浅拷贝、深拷贝介绍

    Python中的赋值、浅拷贝、深拷贝介绍

    这篇文章主要介绍了Python中的赋值、浅拷贝、深拷贝介绍,Python中也分为简单赋值、浅拷贝、深拷贝这几种“拷贝”方式,需要的朋友可以参考下
    2015-03-03
  • Python持续监听文件变化代码实例

    Python持续监听文件变化代码实例

    这篇文章主要介绍了Python持续监听文件变化代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • python结合selenium获取XX省交通违章数据的实现思路及代码

    python结合selenium获取XX省交通违章数据的实现思路及代码

    这篇文章主要介绍了python结合selenium获取XX省交通违章数据的实现思路及代码方法的相关资料
    2016-06-06
  • Python中Class类用法实例分析

    Python中Class类用法实例分析

    这篇文章主要介绍了Python中Class类用法,以实例形式较为详细的分析了Python中类的定义及相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11

最新评论