code: def simple_repr(obj: Any, attrnames: List[str],
                  with_addr: bool = False, joiner: str = COMMA_SPACE) -> str:
      
      elements = ["{}={}".format(name, repr(getattr(obj, name)))
                  for name in attrnames]
      return repr_result(obj, elements, with_addr=with_addr, joiner=joiner)
docs: Convenience function for :func:`__repr__`.
      Works its way through a list of attribute names, and creates a ``repr()``
      representation assuming that parameters to the constructor have the same
      names.
  
      Args:
          obj: object to display
          attrnames: names of attributes to include
          with_addr: include the memory address of ``obj``
          joiner: string with which to join the elements
  
      Returns:
          string: :func:`repr`-style representation