code: def adjoint(self):
          
          adjoints = [op.adjoint for op in self.operators]
          return DiagonalOperator(*adjoints,
                                  domain=self.range, range=self.domain)
docs: 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