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

2024-04-25 06:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 对象实例函数定义垃圾收集器del类析构
1条回答
网友
1楼 · 发布于 2024-04-25 06:35:12

简短回答:没有

<> >较长的答案:^ {< CD1>}不是C++意义上的析构函数,可能不想使用它。

相反,如果需要清理,可能应该将对象放入上下文管理器中(通过编写__enter____exit__方法),并在with语句中使用它们,和/或为它们提供需要显式调用的close方法。Python中的大多数类和广泛使用的库都需要释放外部资源(通常通过使用__enter__返回self__exit__调用self.close()

垃圾回收时,通常不需要释放任何在^ {CD10>}或^ {CD11>}中分配的内存,因为C++可以这样做,因为它将自动收集。p>

__del__方法的使用,但很少

相关问题 更多 >