gpt4 book ai didi

python - 在 python 2.x 中,我应该调用 object.__del__ 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:38 24 4
gpt4 key购买 nike

在 Python 3.x 中,所有类都是 object 的子类。在 2.x 中,您必须显式声明 class MyClass(object)。而且,由于我试图编写尽可能多的 3.x 兼容代码,所以我将 object 子类化。

在我的程序中,我使用了 __del__ 方法,我想知道我是否应该调用 object.__del__(self),或者这是否神奇照顾好了吗?

谢谢,韦恩

编辑:看来我的意思有些困惑 - 在它指出的文件中:

If a base class has a __del__() method, the derived class’s __del__() method, if any, must explicitly call it to ensure proper deletion of the base class part of the instance.

所以我想知道我是否需要:

def __del__(self):
object.__del__(self)

或一些合适的选择。

最佳答案

__del__ 不应该被调用。当对象没有更多引用并被收集时,析构函数会自动执行。

相反,您不调用 __init__,而是在对象创建时自动处理。调用 __del__ 不会破坏对象,这样做实际上可能会导致意外行为。

关于python - 在 python 2.x 中,我应该调用 object.__del__ 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4199653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com