Speichert Pythons functools lru_cache Funktionsparameter neben dem Ergebnis zwischen?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Speichert Pythons functools lru_cache Funktionsparameter neben dem Ergebnis zwischen?

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?

Top