New submission from Федор Лянгузов: Greetings,
I've encountered strange behavior when using functools.lru_cache as a function (not as a decorator): it is at least miscounting misses, but probably not work at all, when the result of functools.lru_cache()(func) is saved in variable other than 'func'. Consider this snippet: def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) f = functools.lru_cache()(factorial) f(20) print(f.cache_info()) Output should be: CacheInfo(hits=0, misses=21, maxsize=128, currsize=21) Instead it is: CacheInfo(hits=0, misses=1, maxsize=128, currsize=1) I'm using Python 3.5.2 64bit on Windows 7 Professional 64bit. I've written 3 unittests (using built-in module), which are attached as a file. I don't know how to comment them (conceptually, not syntactically), sorry. Fedor ---------- components: Library (Lib) files: lru_cache_test.py messages: 274149 nosy: Федор Лянгузов priority: normal severity: normal status: open title: functools.lru_cache seems to not work when renaming decorated functions type: behavior versions: Python 3.5 Added file: http://bugs.python.org/file44325/lru_cache_test.py _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue27933> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com