class CalcSomething(object):

    def __init__(self):
        self._cache = {}

def __call__(self, a):
    if a not in self._cache:
        self._cache[a] = self.reallyCalc(a)
return self._cache[a]

def reallyCalc(self, a):
    return
calcSomething = CalcSomething()
Имитация «локальной статической» переменной в python