在https://github.com/python/cpython/blob/3.6/Lib/linecache.py中有 3 个这样的实例
在getines
def getlines(filename, module_globals=None):
if filename in cache:
entry = cache[filename]
if len(entry) != 1:
return cache[filename][2]
在updatecache
def updatecache(filename, module_globals=None):
if filename in cache:
if len(cache[filename]) != 1:
del cache[filename]
在lazycache
def lazycache(filename, module_globals):
if filename in cache:
if len(cache[filename]) == 1:
return True
else:
return False
我正在编写自己的 linecache 版本并为其编写测试我需要了解元组长度为 1 的场景
有一种情况是 in 中的语句getlines
被执行。这是第一次访问文件并将其存储在缓存中,然后在第二次访问之前将其删除。但我仍然无法弄清楚为什么它存在于其他两个函数中。
如果有人可以帮助我了解使用此长度检查的目的,那将非常有帮助。