code: def mapped_repr(obj: Any, attributes: List[Tuple[str, str]],
                  with_addr: bool = False, joiner: str = COMMA_SPACE) -> str:
      
      elements = ["{}={}".format(init_param_name, repr(getattr(obj, attr_name)))
                  for attr_name, init_param_name in attributes]
      return repr_result(obj, elements, with_addr=with_addr, joiner=joiner)
docs: Convenience function for :func:`__repr__`.
      Takes attribute names and corresponding initialization parameter names
      (parameters to :func:`__init__`).
  
      Args:
          obj: object to display
          attributes: list of tuples, each ``(attr_name, init_param_name)``.
          with_addr: include the memory address of ``obj``
          joiner: string with which to join the elements
  
      Returns:
          string: :func:`repr`-style representation