def lazy_property(f):
    @property
    @wraps(f)
    def wrapper(self, *args, **kwargs):
        lazy = '_lazy_' + f.__name__
        try:
            return getattr(self, lazy)
        except __HOLE__:
            result = f(self, *args, **kwargs)
            setattr(self, lazy, result)
            return result
    return wrapper
dataset/ETHPy150Open chango/inferno/inferno/lib/lazy_property.py/lazy_property