CircuitInstruction¶
- class qiskit.circuit.CircuitInstruction(operation, qubits=(), clbits=())[source]¶
Bases:
object
A single instruction in a
QuantumCircuit
, comprised of theoperation
and various operands.Note
There is some possible confusion in the names of this class,
Instruction
, andOperation
, and this class’s attributeoperation
. Our preferred terminology is by analogy to assembly languages, where an “instruction” is made up of an “operation” and its “operands”.Historically,
Instruction
came first, and originally contained the qubits it operated on and any parameters, so it was a true “instruction”. Over time,QuantumCircuit
became responsible for tracking qubits and clbits, and the class became better described as an “operation”. Changing the name of such a core object would be a very unpleasant API break for users, and so we have stuck with it.This class was created to provide a formal “instruction” context object in
QuantumCircuit.data
, which had long been made of ad-hoc tuples. With this, and the advent of theOperation
interface for adding more complex objects to circuits, we took the opportunity to correct the historical naming. For the time being, this leads to an awkward case whereCircuitInstruction.operation
is often anInstruction
instance (Instruction
implements theOperation
interface), but as theOperation
interface gains more use, this confusion will hopefully abate.Warning
This is a lightweight internal class and there is minimal error checking; you must respect the type hints when using it. It is the user’s responsibility to ensure that direct mutations of the object do not invalidate the types, nor the restrictions placed on it by its context. Typically this will mean, for example, that
qubits
must be a sequence of distinct items, with no duplicates.Attributes
- clbits: Tuple[Clbit, ...]¶
A sequence of the classical bits that this operation reads from or writes to.
Methods
- copy()[source]¶
Return a shallow copy of the
CircuitInstruction
.- Return type:
- replace(operation=None, qubits=None, clbits=None)[source]¶
Return a new
CircuitInstruction
with the given fields replaced.- Return type: