Кэширует ли python functools lru_cache параметры функции вместе с результатом?Python

Программы на Python
Ответить
Anonymous
 Кэширует ли python functools lru_cache параметры функции вместе с результатом?

Сообщение Anonymous »

Для следующей программы:

Код: Выделить всё

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))
Я получил следующий результат:

Код: Выделить всё

Multiplying 2 and 3
6
6
Multiplying 2 and 4
8
8
Multiplying 2 and 5
10
10
Мой вопрос: если этот декоратор применяется к функции, использует ли он параметры функции или кэширует параметры функции вместе с результатом?
Если нет, то как он узнает, что функцию не следует выполнять при передаче тех же параметров?

Подробнее здесь: https://stackoverflow.com/questions/734 ... -the-resul
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»