无法进入 lru_cache'_lru_cache_wrapper
Unable to step into lru_cache'_lru_cache_wrapper
出于某种原因,我根本无法进入 _lru_cache_wrapper 的代码。
我看到 lru_cache 装饰器 returns 在 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())
functools.py
中的版本未被使用。它是 replaced 由 _functools
:
用 C 编写的版本
try:
from _functools import _lru_cache_wrapper
except ImportError:
pass
出于某种原因,我根本无法进入 _lru_cache_wrapper 的代码。
我看到 lru_cache 装饰器 returns 在 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())
functools.py
中的版本未被使用。它是 replaced 由 _functools
:
try:
from _functools import _lru_cache_wrapper
except ImportError:
pass