code: def derivative(self, point):
          
          point = self.domain.element(point)
  
          derivs = [op.derivative(p) for op, p in zip(self.operators, point)]
          return DiagonalOperator(*derivs,
                                  domain=self.domain, range=self.range)
docs: Derivative of this operator.
  
          For example, if A and B are operators
  
              [[A, 0],
               [0, B]]
  
          The derivative is given by:
  
              [[A', 0],
               [0, B']]
  
          This is only well defined if each sub-operator has a derivative
  
          Parameters
          ----------
          point : `element-like` in ``domain``
              The point in which the derivative should be taken.
  
          Returns
          -------
          derivative : `DiagonalOperator`
              The derivative operator
  
          See Also
          --------
          ProductSpaceOperator.derivative