Trung BìnhPython iconPython

`functools.lru_cache` hoạt động thế nào? Khi nào dùng?

lru_cache (Least Recently Used cache) là decorator memoize kết quả của function — lần sau gọi cùng args sẽ trả về cache thay vì tính lại.

Function phải có hashable arguments.

python
from functools import lru_cache

@lru_cache(maxsize=128)
def fibonacci(n: int) -> int:
    if n < 2: return n
    return fibonacci(n-1) + fibonacci(n-2)

# Không cache (default: cached forever)
@lru_cache(maxsize=None)  # Cache không giới hạn
def expensive_lookup(key): ...

fibonacci.cache_info()   # hits, misses, maxsize, currsize
fibonacci.cache_clear()  # Xóa cache

Dùng cho: pure functions với expensive computation, recursive algorithms.

Xem toàn bộ Python cùng filter theo level & chủ đề con.

Mở danh sách Python