Code Explanation:
from functools import lru_cache
Importing lru_cache
lru_cache (Least Recently Used cache) is a decorator from Python’s functools module.
It caches function results so that if the function is called again with the same arguments, Python can return the cached value instead of recalculating.
This improves performance for expensive/repeated computations.
@lru_cache(maxsize=None)
def square(x):
print("calc", x)
return x * x
Decorating Function with @lru_cache
@lru_cache(maxsize=None) applies caching to the square function.
maxsize=None → The cache can store unlimited results.
Function square(x):
Prints "calc", x when executed.
Returns x * x (the square of x).
Key point: If square is called with the same argument again, the cached result is returned without running the function body (so "calc" won’t print again).
print(square(3))
First Call with Argument 3
square(3) is called.
No cached value exists → Function executes.
Prints:
calc 3
Returns 9.
Output:
9
print(square(3))
Second Call with Argument 3
square(3) is called again.
This time, result is already cached.
Function does not execute → "calc 3" is not printed.
Returns cached result 9.
Output:
9
print(square(4))
Call with New Argument 4
square(4) is called for the first time.
No cached value for 4 → Function executes.
Prints:
calc 4
Returns 16.
Output:
16
Final Program Output
calc 3
9
9
calc 4
16
Download Book - 500 Days Python Coding Challenges with Explanation


0 Comments:
Post a Comment