python中del函数是什么意思,python的del方法

  python中del函数是什么意思,python的del方法

  讲的是Python中一个很少见的函数,即使只有很少的章节,但是讲了很多东西。你不知道你是否了解——面向对象的一些内容,这里用的主要函数是del。不知道的可以跟着边肖去看一看~另外,边肖还为你准备了一些特殊用法,让你遇到时有一定的认知。

  1.引用计数和对象销毁

  对于简单对象,删除对象时会调用__del__()方法。

  对于具有循环引用的复杂对象,引用计数器可能永远不会为零,这使得很难调用__del__()方法。

  nitial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: 微软雅黑;">我们用下面的一个类来看看这个过程中到底发生了什么。

  

classNoisy:def__del__(self):print("Removing{0}".format(id(self)))

我们可以像下面这样创建和删除这个对象。

  

>>>x=Noisy()>>>delxRemoving4313946640

  一旦变量被删除,就没有任何地方引用Noisy实例,所以它也可以被清除。

  >>>ln=[Noisy(),Noisy()]>>>ln2=ln[:]>>>delln

2.循环引用和垃圾回收

  

下面我们用这两个类来看看循环引用。

  

classParent:def__init__(self,*children):self.children=list(children)forchildinself.children:child.parent=selfdef__del__(self):print("Removing{__class__.__name__}{id:d}".format(__class__=self.__class__,id=id(self)))classChild:def__del__(self):print("Removing{__class__.__name__}{id:d}".format(__class__=self.__class__,id=id(self)))

3.循环引用和weakref模块

  

4. __del__()方法和close()方法

  

__del__()方法最常见的用途是确保文件被关闭。

  

通常,包含文件操作的类都会有类似下面这样的代码。

  

__del__=close

这会保证__del__()方法同时也是close()方法。

  

大家如果碰到其他更复杂的情况最好使用上下文管理器。以上就是关于del的函数能够碰到的几种场景,只需要浏览几遍,就可以理解内容了哦~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: