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