code: def _trytoget(self, statname, fallback, **kwargs):
          
          try:
              return getattr(self._current_stats, statname)
          except AttributeError:
              val = fallback(**kwargs)
              setattr(self._current_stats, statname, val)
              return val
docs: Helper function to get a stat from ``_current_stats``.
  
          If the statistic hasn't been calculated, ``_current_stats`` will raise
          an ``AttributeError``. In that case, the ``fallback`` function will
          be called. If that call is successful, the ``statname`` will be added
          to ``_current_stats`` with the returned value.
  
          Parameters
          ----------
          statname : str
              The stat to get from ``current_stats``.
          fallback : method of self
              The function to call if the property call fails.
          \**kwargs :
              Any other keyword arguments are passed through to the function.
  
          Returns
          -------
          float :
              The value of the property.