Return a class representation using the slice parameters.

        Args:
            type_: The type the class was sliced with.
            bound: The boundaries specified for the values of type_.
            keyfunc: The comparison function used to check the value
                boundaries.
            keyfunc_name: The name of keyfunc.

        Returns:
            A string representing the class.

def _get_class_repr(cls, type_, bound, keyfunc, keyfunc_name):
        # type: (Any, slice, Callable, str) -> str
        """Return a class representation using the slice parameters.

        Args:
            type_: The type the class was sliced with.
            bound: The boundaries specified for the values of type_.
            keyfunc: The comparison function used to check the value
                boundaries.
            keyfunc_name: The name of keyfunc.

        Returns:
            A string representing the class.
        """
        if keyfunc is not cls._default:
            return "{}.{}[{}, {}, {}]".format(
                cls.__module__,
                cls.__name__,
                cls._get_fullname(type_),
                cls._get_bound_repr(bound),
                keyfunc_name,
            )
        return "{}.{}[{}, {}]".format(
            cls.__module__,
            cls.__name__,
            cls._get_fullname(type_),
            cls._get_bound_repr(bound),
        )