Code Explanation:
1. Importing lru_cache
from functools import lru_cache
- Imports lru_cache from Python's built-in functools module.
- It is used to store previously calculated function results.
2. Enabling Caching
@lru_cache(None)
- Applies caching to the function.
- None means there is no maximum limit on the number of cached results.
- Repeated calls with the same arguments use stored results.
3. Defining the Function
def power(n):
- Defines a function named power().
- Accepts one parameter, n.
- The function calculates the square of the given number.
4. Printing the Argument
print(n, end=" ")
- Prints the value of n.
- end=" " adds a space instead of moving to a new line.
- This statement executes only when the function actually runs.
5. Calculating the Square
return n ** 2
- Uses the exponentiation operator **.
- Calculates the square of n.
- Returns the calculated result.
6. First Function Call
power(3)
- Calls the function with the argument 3.
- The function executes and prints 3.
- Calculates 3 ** 2, which is 9.
- Stores the result in the cache.
7. Second Function Call
power(3)
- Calls the function again with the same argument.
- Python retrieves the cached result 9.
- The function body does not execute again.
- Therefore, 3 is not printed a second time.
8. Third Function Call
print(power(4))
- Calls the function with the argument 4.
- No cached result exists for this argument.
- The function executes and prints 4.
- Calculates and returns 16.
- The outer print() displays the returned value.
Understanding Cache Execution
Function call Execution Result
power(3) Executes 9
power(3) Uses cache 9
power(4) Executes 16
Final Output
Correct Output
3 4 16
.png)

0 Comments:
Post a Comment