class_docstr: stores a single scalar value and its gradient 
class_docstr_tok: ["stores","a","single","scalar","value","and","its","gradient"]
code: def __pow__(self, other):
      assert isinstance(
          other, (int, float)
      ), "only supporting int/float powers for now"
      out = Value(self.data**other, (self,), f"**{other}")
  
      def _backward():
          self.grad += (other * self.data ** (other - 1)) * out.grad
  
      out._backward = _backward
  
      return out
  
file_path: micrograd/micrograd/engine.py
label_desc: Use image node_id 4 for calling the Value obj's underlying member method code with example usage: obj.__pow__(other) and returns: out