0Pricing
Flask Academy · Урок

Мемоизация ресурсоёмких функций

Кэшируйте результаты функций по аргументам.

«Мемоизация ресурсоёмких функций» — бесплатный урок Flask Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Flask Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Flask Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Beyond Whole Views

Sometimes only one slow helper is the problem, not the whole page. Memoization caches a function result keyed by its arguments.

The memoize Decorator

You wrap a function with @cache.memoize(). Same arguments return the stored result instead of recomputing it. 💡

@cache.memoize()
def heavy(n):
    return slow_calc(n)

Keyed by Arguments

Memoize builds the key from the arguments. heavy(2) and heavy(5) are cached separately, each remembering its own answer.

cached vs memoize

Use cached for views keyed by URL, and memoize for plain functions keyed by their inputs. They solve different layers.

Set a memoize Timeout

Just like views, you give memoize a timeout so results expire. After it passes, the next call recomputes and re-stores.

@cache.memoize(timeout=120)
def rates():
    ...

Perfect for Pure Functions

Memoize shines on pure functions: same input always gives the same output, with no side effects to lose.

Avoid Caching Side Effects

Do not memoize a function that sends email or writes a row. On a cache hit the body is skipped, so the effect never runs.

Methods Need Care

For instance methods, the key includes self. Two objects cache separately, which is usually exactly what you want.

Drop One Memoized Result

You can evict a single entry with delete_memoized, passing the function and the exact arguments to clear.

cache.delete_memoized(rates)

Clear by Argument

Pass arguments to delete_memoized to drop just that variant, leaving every other cached result untouched.

cache.delete_memoized(heavy, 5)

Measure Before Memoizing

Only memoize what is actually slow. Profile first, because caching cheap work adds key overhead with little real gain.

Quick Check

You memoize a function that also logs each call to your database.

Recap: Memoization

You can memoize slow pure functions, key results by arguments, set timeouts, and evict with delete_memoized. 🎯

Часто задаваемые вопросы

Урок «Мемоизация ресурсоёмких функций» бесплатный?

Да — полный текст урока «Мемоизация ресурсоёмких функций» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Flask Academy, подпишись на CoddyKit PRO. Курс Flask Academy содержит 4 уроков всего.

Чему я научусь в уроке «Мемоизация ресурсоёмких функций»?

Кэшируйте результаты функций по аргументам. Ты практикуешь Flask Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Flask Academy?

Предыдущий опыт не требуется. Flask Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Мемоизация ресурсоёмких функций»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Flask Academy?

Да. Каждый урок Flask Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Настройка Flask-Caching
  2. Кэширование представления с помощью cached
  3. Мемоизация ресурсоёмких функций
  4. Инвалидация и истечение записей кэша
← Назад к Flask Academy