def __call__(self, func): @wraps(func) def decorated(*args, **kwargs): with self: return func(*args, **kwargs) return decorated