code: def evaluate_cached(self, **kwargs):
          
          if not hasattr(self, 'result'):
              self.result = self.evaluate(cache=True, **kwargs)
  
          return self.result
docs: Wraps evaluate(), caching results