擅长:python、mysql、java
<blockquote>
<p>I want to know when the <code>Obj.__del__()</code> method is going to be called.</p>
</blockquote>
<p>你不能。可能永远不会。Python中的终结器(或者在任何具有自动垃圾收集器方案的环境中)根本不能保证运行,只能用于最后的清理。如果您想要可预测的生命周期管理,请使用<a href="http://docs.python.org/reference/compound_stmts.html#with" rel="noreferrer">^{<cd1>} statement</a>和<a href="http://docs.python.org/library/stdtypes.html#typecontextmanager" rel="noreferrer">context managers</a>。在</p>
<pre><code>class Foo(object):
def __enter__(self):
print 'Entered with block'
def __exit__(self, *exc_info):
print 'Exited with block'
return False
with Foo():
pass
</code></pre>