Create properties that are only computed the first time they are called.
Latest commit ec1205e Jun 14, 2013 @sionide21 Installation instructions
Permalink
Failed to load latest commit information.
.gitignore Initial commit Jun 13, 2013
LICENSE.txt
README.md
memoize.py Add mproperty Jun 13, 2013
setup.py

README.md

Memoize

Only compute the value of properties the first time they are called. The easiest way to explain it is by example.

Bad

class Foo(object):
    def __init__(self):
        self._bar_cache = None

    @property
    def bar(self):
        if self._bar_cache is None:
            self._bar_cache = 2 * 2 * 2
        return self._bar_cache

Good

from memoize import mproperty

class Foo(object):
    @mproperty
    def bar(self):
        return 2 * 2 * 2

Installation

This package is available on pypi. Installation is as simple as:

pip install memoize