class_docstr: Class for an n-fold product manifold :math:`M^n`.
  
  Define a manifold as the product manifold of n copies of a given base
  manifold M.
  
  Parameters
  ----------
  space : NFoldManifold
      Base space.
  scales : array-like
      Scale of each metric in the product.
code: def __init__(self, space, scales=None, signature=None):
      if scales is not None:
          for scale in scales:
              geomstats.errors.check_positive(
                  scale, "Each value in scales"
              )
  
          if len(scales) != space.n_copies:
              raise ValueError(
                  "Number of scales should be equal to number of factors"
              )
      self.scales = scales
  
      super().__init__(space=space, signature=signature)
  
imports: import geomstats.backend
  import geomstats.errors
  from geomstats.geometry.manifold import Manifold
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 1 to create a new NFoldMetric object from inherited base classes: RiemannianMetric with example: obj = NFoldMetric(space, scales, signature)