training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Декоратор cache модуля functools Python

Создано: 20 января 2025Автор: Егор Астапов61 просмотрСложность: легкий

Покажу вам готовый декоратор cache модуля functools Python. Он сохраняет результат, учитывая входные параметры функции. Ваша функция будет работать достаточно быстро если возникают повторения комбинаций входных параметров. Вы можете самостоятельно написать подобную функцию и сохранять результат в redis или memcached.

#!/usr/local/bin/python

import time
from functools import cache

@cache
def sum_test(x, y):
time.sleep(1)
result = x**y
return result

print(sum_test(200, 300))
print(sum_test(200, 400))
print(sum_test.cache_info())
print(sum_test(200, 300))
print(sum_test(200, 300))
print(sum_test(200, 400))
print(sum_test(200, 400))
# sum_test.cache_clear()
print(sum_test.cache_info())
"""
...
CacheInfo(hits=0, misses=2, maxsize=None, currsize=2)
...
CacheInfo(hits=4, misses=2, maxsize=None, currsize=2)
"""

Комментарии

реклама