<p>在阅读Python<code>re</code>模块的文档时,我决定查看一下<code>re.py</code>源代码。在</p>
<p>当我打开它时,我发现了这个:</p>
<pre><code>_cache = {}
_MAXCACHE = 100
def _compile(*key):
cachekey = (type(key[0]),) + key
p = _cache.get(cachekey)
if p is not None:
return p
#...Here I skip some part of irrelevant to the question code...
if len(_cache) >= _MAXCACHE:
_cache.clear()
_cache[cachekey] = p
return p
</code></pre>
<p>当缓存达到条目的<code>_cache.clear()</code>时,为什么要使用<code>_cache.clear()</code>清除它?在</p>
<p>完全清除缓存并从头开始是一种常见的方法吗?在</p>
<p>为什么刚用了最长时间前兑现的价值就被删除了?在</p>