gpt4 book ai didi

python - Python 类析构函数是否保证在程序结束前执行?

转载 作者:行者123 更新时间:2023-12-04 01:16:22 26 4
gpt4 key购买 nike

我们可以使用 del 强制执行析构函数,通常只是让垃圾收集器完成它的工作,但是如果我们在 Python 中定义一个类析构函数,它是否保证对每个实例化的对象都执行?

最佳答案

简短的回答:没有。
更长的答案:__del__在 C++ 意义上并不是真正的析构函数,您可能不想使用它。
相反,如果您需要清理,您可能应该将对象变成上下文管理器(通过编写 __enter____exit__ 方法)并在 with 中使用它们。声明,和/或给他们 close需要显式调用的方法。 Python 中的大多数类和需要释放外部资源的广泛使用的库都同时执行(通常通过让 __enter__ 返回 self__exit__ 调用 self.close() )。
使用垃圾回收,通常不需要释放在 __init__ 中分配的任何内存。或 __new__ ,就像在 C++ 中所做的那样,因为它将自动收集。__del__ 有用途方法,但它们很少见。

关于python - Python 类析构函数是否保证在程序结束前执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63294410/

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