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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。