docs: def stash(self, *values, **data):
          """
          The stash method allows you to stash values for later analysis.  The
          arguments are identical to the ``show()`` method.  Instead of writing
          outpout, however, the ``stash()`` method populates a global list with
          the values that would have been printed.  This allows them to be
          accessed later in the debugging process.
  
          Here is an example.
  
          .. code-block:: python
  
             from behold import Behold, get_stash
  
             for nn in range(10):
                 # You can only invoke ``stash()`` on behold objects that were
                 # created with tag.  The tag becomes the global key for the stash
                 # list.
                 behold = Behold(tag='my_stash_key')
                 two_nn = 2 * nn
  
                 behold.stash('nn' 'two_nn')
  
             # You can then run this in a completely different file of your code
             # base.
             my_stashed_list = get_stash('my_stash_key')
          """
          if not self.tag:
              raise ValueError(
                  'You must instantiate Behold with a tag name if you want to '
                  'use stashing'
              )
  
          item, att_names = self._get_item_and_att_names(*values, **data)
          if not item:
              self.reset()
              return False
  
          out = {name: item.__dict__.get(name, None) for name in att_names}
  
          self.__class__._stash[self.tag].append(out)
          self.reset()
          return True