Returns a controlled version of this operation.

        Args:
            control_qubits: Qubits to control the operation by. Required.

def controlled_by(self, *control_qubits: Qid) -> 'Operation':
        """Returns a controlled version of this operation.

        Args:
            control_qubits: Qubits to control the operation by. Required.
        """
        # Avoids circular import.
        from cirq.ops import ControlledOperation
        if control_qubits is None or len(control_qubits) is 0:
            raise ValueError(
                "Can't get controlled operation without control qubit. Op: {}"
                .format(repr(self)))
        else:
            return ControlledOperation(control_qubits, self)