由于某些原因,我根本无法进入_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())发布于 2019-01-15 02:09:36
functools.py中的版本未被使用。它是_functools中用C编写的一个版本的replaced
try:
from _functools import _lru_cache_wrapper
except ImportError:
passhttps://stackoverflow.com/questions/54186904
复制相似问题