def simple_repr(obj: Any, attrnames: List[str],
                with_addr: bool = False, joiner: str = COMMA_SPACE) -> str:
    """
    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

    """
    elements = ["{}={}".format(name, repr(getattr(obj, name)))
                for name in attrnames]
    return repr_result(obj, elements, with_addr=with_addr, joiner=joiner)
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 )
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