def memoized_property(func=None, key_factory=per_instance, **kwargs):
 getter = memoized_method(func=func, key_factory=key_factory, **kwargs)
 return property(fget=getter, fdel=(lambda self: getter.forget(self)))

def memoized_property ( func = None , key_factory = per_instance , ** kwargs ) : getter = memoized_method ( func = func , key_factory = key_factory , ** kwargs ) return property ( fget = getter , fdel = ( lambda self : getter . forget ( self ) ) )
a convenience wrapper for memoizing properties .