РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
500 of 643 menu

Метод memoize

Метод memoize применяется к экземпляру класса Cache и используется в качестве декоратора для функции. Он запоминает результат вызова функции, основываясь на переданных аргументах, и при повторном вызове с теми же аргументами возвращает сохранённое значение, минуя выполнение тела функции. Первым параметром передаётся время жизни кэша в секундах, вторым - префикс ключа для хранения результата.

Синтаксис

@cache.memoize(timeout, key_prefix)

Пример

Давайте закэшируем результат функции, выполняющей сложные вычисления, на 50 секунд:

from flask import Flask from flask_caching import Cache app = Flask(__name__) app.config['CACHE_TYPE'] = 'simple' cache = Cache(app) @cache.memoize(50) def get_data(param): return f"Result for {param}" @app.route('/') def index(): res = get_data('abcde') return res

При первом обращении к адресу '/' функция выполнится и результат сохранится в кэше. При повторном запросе в течение 50 секунд результат будет взят из кэша.

Пример

Давайте используем собственный префикс ключа для кэширования:

from flask import Flask from flask_caching import Cache app = Flask(__name__) app.config['CACHE_TYPE'] = 'simple' cache = Cache(app) @cache.memoize(100, key_prefix='my_prefix') def calculate(num): return num * 2 @app.route('/') def index(): res = calculate(5) return str(res)

Результат выполнения кода для адреса '/':

10

Смотрите также

  • класс Cache,
    который управляет кэшированием в приложении
  • метод cached,
    который кэширует результат представления
  • метод get,
    который извлекает значение из кэша по ключу
  • метод set,
    который сохраняет значение в кэш по ключу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить