由于某种原因,我根本无法进入_lru_cache_wrapper的代码。
我看到lru_cache装饰器在functools.py中返回了一个带有_lru_cache_wrapper的闭包。但是,当我在_lru_cache_wrapper的代码中添加断点时,它永远不会触发。我什至放了一个print()语句,该语句似乎没有被击中。我真的为此感到困惑,因为lru_cache代码达到了断点,但没有达到_lru_cache_wrapper。
from functools import lru_cache
@lru_cache()
def foo():
print('foo')
if __name__ == '__main__':
foo()
print(foo.cache_info())
答案 0 :(得分:2)
functools.py
中的版本未使用。由_functools
用C语言编写的版本为replaced:
try:
from _functools import _lru_cache_wrapper
except ImportError:
pass