2024-04-25 06:35:12 发布
网友
我们可以强制使用del执行析构函数,通常只让垃圾收集器执行它的工作,但是如果我们在Python中定义一个类析构函数,它是否保证为每个实例化的对象执行
del
简短回答:没有
相反,如果需要清理,可能应该将对象放入上下文管理器中(通过编写__enter__和__exit__方法),并在with语句中使用它们,和/或为它们提供需要显式调用的close方法。Python中的大多数类和广泛使用的库都需要释放外部资源(通常通过使用__enter__返回self和__exit__调用self.close())
__enter__
__exit__
with
close
self
self.close()
垃圾回收时,通常不需要释放任何在^ {CD10>}或^ {CD11>}中分配的内存,因为C++可以这样做,因为它将自动收集。p>
有__del__方法的使用,但很少
__del__
简短回答:没有
<> >较长的答案:^ {< CD1>}不是C++意义上的析构函数,可能不想使用它。相反,如果需要清理,可能应该将对象放入上下文管理器中(通过编写
__enter__
和__exit__
方法),并在with
语句中使用它们,和/或为它们提供需要显式调用的close
方法。Python中的大多数类和广泛使用的库都需要释放外部资源(通常通过使用__enter__
返回self
和__exit__
调用self.close()
)垃圾回收时,通常不需要释放任何在^ {CD10>}或^ {CD11>}中分配的内存,因为C++可以这样做,因为它将自动收集。p>
有
__del__
方法的使用,但很少相关问题 更多 >
编程相关推荐