def adjoint(self):
        """Adjoint of this operator.

        For example, if A and B are operators::

            [[A, 0],
             [0, B]]

        The adjoint is given by::

            [[A^*, 0],
             [0, B^*]]

        This is only well defined if each sub-operator has an adjoint

        Returns
        -------
        adjoint : `DiagonalOperator`
            The adjoint operator

        See Also
        --------
        ProductSpaceOperator.adjoint
        """
        adjoints = [op.adjoint for op in self.operators]
        return DiagonalOperator(*adjoints,
                                domain=self.range, range=self.domain)
Adjoint of this operator.

        For example, if A and B are operators::

            [[A, 0],
             [0, B]]

        The adjoint is given by::

            [[A^*, 0],
             [0, B^*]]

        This is only well defined if each sub-operator has an adjoint

        Returns
        -------
        adjoint : `DiagonalOperator`
            The adjoint operator

        See Also
        --------
        ProductSpaceOperator.adjoint