by Guest » 12 Jan 2025, 08:20
Für das folgende Programm:
Code: Select all
from functools import lru_cache
@lru_cache(maxsize=256)
def task_a(a, b):
print(f'Multiplying {a} and {b}')
return a*b
print(task_a(2, 3))
print(task_a(2, 3))
print(task_a(2, 4))
print(task_a(2, 4))
print(task_a(2, 5))
print(task_a(2, 5))
Ich habe die folgende Ausgabe erhalten:
Code: Select all
Multiplying 2 and 3
6
6
Multiplying 2 and 4
8
8
Multiplying 2 and 5
10
10
Meine Frage ist, ob dieser Dekorator, wenn er auf die Funktion angewendet wird, Funktionsparameter verwendet oder die Funktionsparameter zusammen mit dem Ergebnis zwischenspeichert?
Wenn nein, woher weiß es dann, dass die Funktion nicht ausgeführt werden soll, wenn dieselben Parameter übergeben werden?
Für das folgende Programm:
[code]from functools import lru_cache
@lru_cache(maxsize=256)
def task_a(a, b):
print(f'Multiplying {a} and {b}')
return a*b
print(task_a(2, 3))
print(task_a(2, 3))
print(task_a(2, 4))
print(task_a(2, 4))
print(task_a(2, 5))
print(task_a(2, 5))
[/code]
Ich habe die folgende Ausgabe erhalten:
[code]Multiplying 2 and 3
6
6
Multiplying 2 and 4
8
8
Multiplying 2 and 5
10
10
[/code]
Meine Frage ist, ob dieser Dekorator, wenn er auf die Funktion angewendet wird, Funktionsparameter verwendet oder die Funktionsparameter zusammen mit dem Ergebnis zwischenspeichert?
Wenn nein, woher weiß es dann, dass die Funktion nicht ausgeführt werden soll, wenn dieselben Parameter übergeben werden?