擅长:python、mysql、java
<p>如果它有<code>__enter__</code>和<code>__exit__</code>方法,这意味着它实现了<a href="http://docs.python.org/reference/datamodel.html#with-statement-context-managers" rel="nofollow">context manager protocol</a>,您应该这样使用它:</p>
<pre><code>with constructor(args) as a:
# do stuff with a
pass
# here a is closed even if you had an error above
</code></pre>
<p>其中<code>constructor</code>要么是类本身,要么是用来创建它的任何工厂函数。在Python2.5中,您需要<code>from __future__ import with_statement</code>。在</p>