Посты с тэгом мемоизация


Мемоизация дефолтным kwarg в Python

Вот так можно мемоизировать питоновскую функцию:

def memo_square(a, cache={}): 
    if a not in cache: 
        cache[a] = a*a 
    return cache[a]


Приём незаслуженно малоизвестный, так что под катом мы разберём, как он работает и для чего нужен.
Читать дальше →


Мемоизация в Python: пробуем на зуб.

Как-то мне посчастливилось натолкнуться на хабрапост, посвященный мемоизации. На тот момент это слово было мне ещё не знакомым и я даже слегка растерялся.
Однако уже после первых строк я сразу понял, что скрывается под этим мудрёным словом - это же старое, доброе, классическое ("тёплое ламповое" ;-) ) табулирование функций, но подведённое под паттерн проектирования и с более удобным (в контексте языка Python) интерфейсом.

Почитав ещё несколько постов на эту же тему я увидел в представленных реализациях "фатальный недостаток" тут же кинулся переписывать самостоятельно, на примере расчёта факториала:



# -*- coding: utf-8 -*-

from functools import wraps
import cPickle