code: def prod(x, axis=None, keepdims=False):
      
      from .function_bases import prod as prod_base
      if axis is None:
          axis = range(x.ndim)
      elif not hasattr(axis, '__iter__'):
          axis = [axis]
      return prod_base(x, axis, keepdims)
docs: Reduction along axes with product operation.
  
      Args:
          x (Variable): An input variable.
          axis (None, int or tuple of ints): Axis or axes along which product is
              calculated. Passing the default value `None` will reduce all dimensions.
          keepdims (bool): Flag whether the reduced axes are kept as a dimension with 1 element.
  
      Returns:
          ~nnabla.Variable: N-D array.
  
      Note:
          Backward computation is not accurate in a zero value input.