草庐IT

python - 什么是 __del__ 方法,我该如何调用它?

我看到一个类,其中一个__del__method被定义为。此方法用于销毁类的实例。但是,我找不到使用这种方法的地方。这种方法是如何使用的?像这样:obj1.del()?.如何调用__del__方法? 最佳答案 __del__是一个终结器。当一个对象被垃圾收集时调用它,这发生在对该对象的所有引用都被删除之后的某个时刻。在简单的情况下,这可能是在你说delx之后。或者,如果x是一个局部变量,在函数结束后。特别是,除非存在循环引用,否则CPython(标准Python实现)将立即进行垃圾收集。不过,这是CPython的实现细节。Pytho

python - python,del或delattr哪个更好?

这可能很愚蠢,但它已经在我的大脑后部唠叨了一段时间。Python为我们提供了两种从对象中删除属性的内置方法,del命令字和delattr内置函数。我更喜欢delattr因为我认为它更明确:delfoo.bardelattr(foo,"bar")但我想知道它们之间是否存在内在差异。 最佳答案 第一个比第二个更有效。delfoo.bar编译成两条字节码指令:20LOAD_FAST0(foo)3DELETE_ATTR0(bar)而delattr(foo,"bar")需要五个:20LOAD_GLOBAL0(delattr)3LOAD_FAS

python - del 在 Python 中什么时候有用?

我真的想不出Python需要del关键字的任何原因(而且大多数语言似乎没有类似的关键字)。例如,与其删除变量,不如将None分配给它。并且在从字典中删除时,可以添加一个del方法。是否有理由将del保留在Python中,或者它是Python垃圾回收前的遗迹? 最佳答案 首先,你可以del除了局部变量之外的其他东西dellist_item[4]deldictionary["alpha"]两者都应该明显有用。其次,在局部变量上使用del会使意图更清晰。比较:delfoo到foo=None我知道delfoo的目的是从范围中删除变量。目前尚

python - del 在 Python 中什么时候有用?

我真的想不出Python需要del关键字的任何原因(而且大多数语言似乎没有类似的关键字)。例如,与其删除变量,不如将None分配给它。并且在从字典中删除时,可以添加一个del方法。是否有理由将del保留在Python中,或者它是Python垃圾回收前的遗迹? 最佳答案 首先,你可以del除了局部变量之外的其他东西dellist_item[4]deldictionary["alpha"]两者都应该明显有用。其次,在局部变量上使用del会使意图更清晰。比较:delfoo到foo=None我知道delfoo的目的是从范围中删除变量。目前尚

【Python中字典的删除操作-del和clear】

快速理解del和clear的区别dict0={'key1':1,'key2':2}deldict0['key1'],表示删除键为key1的键值对;deldict0表示删除整个字典,删除后字典不存在;dict1.clear(),清空字典,删除后字典仍存在。选择题以下python代码输出什么?dict1={'A':1,'B':2,'C':3}deldict1['A']print(dict1)dict1.clear()print(dict1)deldict1print(dict1)A{'B':2,'C':3}{}报错B{1,'B':2,'C':3}{}报错C{'B':2,'C':3}报错报错D{'B

【Python中字典的删除操作-del和clear】

快速理解del和clear的区别dict0={'key1':1,'key2':2}deldict0['key1'],表示删除键为key1的键值对;deldict0表示删除整个字典,删除后字典不存在;dict1.clear(),清空字典,删除后字典仍存在。选择题以下python代码输出什么?dict1={'A':1,'B':2,'C':3}deldict1['A']print(dict1)dict1.clear()print(dict1)deldict1print(dict1)A{'B':2,'C':3}{}报错B{1,'B':2,'C':3}{}报错C{'B':2,'C':3}报错报错D{'B