class_docstr: Sharding spec for single dimension of the sharded tensor describe the sharding dimension of
  logical device mesh and give a method to compute the difference between them.
  This class is used internally in ShardingSpec.
  
  Argument:
      shard_list(List[int]): if shard_list is None, the dim spec will be 'R' type.
          Otherwise, the element in shard_list means the data will be sharded in that dimension.
code: def __repr__(self):
      if self.is_replica:
          return "R"
      target = "S"
      for dim in self.shard_list:
          target += str(dim)
      return target
  
imports: import operator
  from copy import deepcopy
  from functools import reduce
  import torch
  from colossalai.device.device_mesh import DeviceMesh
  from .utils import merge_same_dim_mesh_list
label_desc: Use image node_id 3 for calling the _DimSpec obj's underlying member method code with example usage: obj.__repr__() and returns: target, str