def __init__(self, name, num_qubits, num_clbits, params):
if not isinstance(num_qubits, int) or not isinstance(num_clbits, int):<EOL><INDENT>raise QiskitError("<STR_LIT>")<EOL><DEDENT>if num_qubits < <NUM_LIT:0> or num_clbits < <NUM_LIT:0>:<EOL><INDENT>raise QiskitError(<EOL>"<STR_LIT>" %<EOL>num_qubits, num_clbits)<EOL><DEDENT>self.name = name<EOL>self.num_qubits = num_qubits<EOL>self.num_clbits = num_clbits<EOL>self._params = []  <EOL>self.control = None<EOL>self._definition = None<EOL>self.params = params<EOL>
Create a new instruction.
        Args:
            name (str): instruction name
            num_qubits (int): instruction's qubit width
            num_clbits (int): instructions's clbit width
            params (list[sympy.Basic|qasm.Node|int|float|complex|str|ndarray]): list of parameters
        Raises:
            QiskitError: when the register is not in the correct format.