qiskit-documentation/docs/api/qiskit/0.44/qiskit.circuit.Operation.mdx

54 lines
1.8 KiB
Plaintext

---
title: Operation
description: API reference for qiskit.circuit.Operation
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.circuit.Operation
---
# Operation
<Class id="qiskit.circuit.Operation" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.25/qiskit/circuit/operation.py" signature="qiskit.circuit.Operation" modifiers="class">
Bases: [`ABC`](https://docs.python.org/3/library/abc.html#abc.ABC "(in Python v3.12)")
Quantum Operation Interface Class. For objects that can be added to a [`QuantumCircuit`](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit"). These objects include [`Gate`](qiskit.circuit.Gate "qiskit.circuit.Gate"), `Reset`, `Barrier`, `Measure`, and operators such as [`Clifford`](qiskit.quantum_info.Clifford "qiskit.quantum_info.Clifford"). The main purpose is to add an [`Operation`](#qiskit.circuit.Operation "qiskit.circuit.Operation") to a [`QuantumCircuit`](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit") without synthesizing it before the transpilation.
**Example**
Add a Clifford and a Toffoli gate to a QuantumCircuit.
```python
from qiskit import QuantumCircuit
from qiskit.quantum_info import Clifford, random_clifford
qc = QuantumCircuit(3)
cliff = random_clifford(2)
qc.append(cliff, [0, 1])
qc.ccx(0, 1, 2)
qc.draw('mpl')
```
![../\_images/qiskit-circuit-Operation-1.png](/images/api/qiskit/0.44/qiskit-circuit-Operation-1.png)
## Attributes
### name
<Attribute id="qiskit.circuit.Operation.name">
Unique string identifier for operation type.
</Attribute>
### num\_clbits
<Attribute id="qiskit.circuit.Operation.num_clbits">
Number of classical bits.
</Attribute>
### num\_qubits
<Attribute id="qiskit.circuit.Operation.num_qubits">
Number of qubits.
</Attribute>
</Class>