我了解到,python不 保证 在删除对象时调用它。__del__
换句话说,不一定del x
调用它的析构函数x.__del__()
。
如果我想确保正确清理对象,我应该使用上下文管理器(在with
语句中)。
我知道这很愚蠢,但出于几个原因(请不要问为什么),我与 Python 2.4 的系统相关联;因此上下文管理器是没有问题的(它们是在 Python 2.5 中引入的)
所以我需要一个替代解决方案,因此我的问题是:是否有最佳实践可以帮助我__del__
可靠地使用?我正在考虑“如果python提供这样的功能,必须有一种方法可以有效地使用它(我只是愚蠢地弄清楚如何)”,,,
或者我只是天真,应该忘记__del__
并转向完全不同的方法吗?