Mercurial > kallithea
view rhodecode/lib/vcs/utils/lazy.py @ 2212:727e1f922a89 beta
exclude the actual grep command in memwatch
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 30 Apr 2012 14:10:58 +0200 |
parents | 324ac367a4da |
children | c4d418b440d1 |
line wrap: on
line source
class LazyProperty(object): """ Decorator for easier creation of ``property`` from potentially expensive to calculate attribute of the class. Usage:: class Foo(object): @LazyProperty def bar(self): print 'Calculating self._bar' return 42 Taken from http://blog.pythonisito.com/2008/08/lazy-descriptors.html and used widely. """ def __init__(self, func): self._func = func self.__name__ = func.__name__ self.__doc__ = func.__doc__ def __get__(self, obj, klass=None): if obj is None: return None result = obj.__dict__[self.__name__] = self._func(obj) return result