擅长:python、mysql、java
<p>关闭你使用的资源被认为是一种好的方式。</p>
<p>通常情况下,在垃圾收集期间会关闭。但它是调用<a href="http://docs.python.org/reference/datamodel.html#object.__del__" rel="nofollow">^{<cd1>}</a>时的实现细节。在CPython中,有引用计数,对象一旦不再使用就会被丢弃。Jython等其他实现的工作方式可能不同。</p>
<blockquote>
<p>An implementation is allowed to postpone garbage collection or omit it altogether – it is a matter of implementation quality how garbage collection is implemented, as long as no objects are collected that are still reachable.</p>
</blockquote>
<p>在2.5或2.6中,引入了上下文管理器,以便准确地处理此类问题。从那时起,以这种方式处理文件被认为是一种很好的方式:</p>
<pre><code>with open(...) as f:
# do stuff with file object f
# now it is automatically closed.
</code></pre>
<p>我不知道zeromq,但它可能也支持上下文管理器。</p>
<p>我个人是草率的,如果我工作一行通过命令行,但往往是相当严格的完整程序。显性比隐性好。</p>