Returns a tuple of slices, each slice equal to the
        slice(lower_extent, upper_extent, 1) of the dimensions
        supplied in slice_dims. If the dimension is integer d,
        slice(0, d, 1) will be used instead of the lower and upper extents

        .. code-block:: python

            A = np.ones(ntime, na)
            idx = cube.slice_index('ntime','na', 3)
            A[idx].sum()
            ntime, na, components = cube.slice_index('ntime', 'na', 3)
            A[ntime, na, components].sum()

        Parameters
        ----------
        *slice_dims : tuple
            Tuple of dimensions for which slice
            objects should be returned.


        Returns
        -------
            tuple
                Tuple of :code:`slice(lower,upper,1)` objects

def slice_index(self, *slice_dims, **kwargs):
        """
        Returns a tuple of slices, each slice equal to the
        slice(lower_extent, upper_extent, 1) of the dimensions
        supplied in slice_dims. If the dimension is integer d,
        slice(0, d, 1) will be used instead of the lower and upper extents

        .. code-block:: python

            A = np.ones(ntime, na)
            idx = cube.slice_index('ntime','na', 3)
            A[idx].sum()
            ntime, na, components = cube.slice_index('ntime', 'na', 3)
            A[ntime, na, components].sum()

        Parameters
        ----------
        *slice_dims : tuple
            Tuple of dimensions for which slice
            objects should be returned.


        Returns
        -------
            tuple
                Tuple of :code:`slice(lower,upper,1)` objects

        """
        return tuple(slice(l, u, 1) for l, u in zip(
            self.dim_lower_extent(*slice_dims, single=False),
            self.dim_upper_extent(*slice_dims, single=False)))