擅长:python、mysql、java
<p>cPython使用引用计数(加上一些循环引用检测,这里不适用)来处理对象的<code>gc</code>。一旦对象达到0个现有引用,它将立即被gc'd</p>
<p>在循环的情况下:</p>
<pre><code>for pat in locpats:
q = re.match(pat, scannedcode)
</code></pre>
<p><code>locpats</code>中的每个连续的<code>pat</code>将一个新的<code>re.match</code>对象绑定到<code>q</code>。这意味着旧的<code>re.match</code>对象有0个剩余引用,将立即被垃圾收集。类似的情况也适用于从函数中<code>return</code>。你知道吗</p>
<p>这都是cPython的实现细节;其他类型的python将以不同的方式处理<code>gc</code>。在所有情况下,不要过早地优化。除非你能找到这样做的具体原因,否则单独使用<code>gc</code>可能是最有效的解决方案。你知道吗</p>