Я работаю с декораторами Python над реализацией кэширования функций. Я понимаю основную концепцию кэширования результатов для повышения производительности, но не могу понять, как обрабатывать различные аргументы функции и обеспечивать обновление кэша при изменении базовых данных.
Я реализовал базовый декоратор, который сохраняет результаты функции в словаре на основе аргументов. Однако этот подход не обрабатывает ситуации, когда аргументы функции могут иметь сложную структуру (например, вложенные списки) или когда базовые данные, на которые опирается функция, могут быть изменены.
def simple_cache(func):
cache = {}
def wrapper(*args, **kwargs):
key = (args, kwargs) # Basic key based on arguments
if key not in cache:
cache[key] = func(*args, **kwargs)
return cache[key]
return wrapper
@simple_cache
def calculate_something(data):
# Simulates complex calculation
# ...
return result
Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-python
Путаница с кэшированием с помощью декораторов в Python ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Делает ли код Visual Studio что-то с кэшированием пакетов Python в средах Conda?
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как документировать функции Python с помощью декораторов перегрузки/отправки?
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-