---
title: Operation (latest version)
description: API reference for qiskit.circuit.Operation in the latest version of qiskit
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/qiskit.circuit.Operation
---

# Operation

*class* `qiskit.circuit.Operation`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/circuit/operation.py#L18-L68)

Bases: [`ABC`](https://docs.python.org/3/library/abc.html#abc.ABC)

Quantum operation interface.

The minimal interface that any object must fulfil in order to be added to a [`QuantumCircuit`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit").

Concrete instances of this interface include [`Gate`](/docs/api/qiskit/qiskit.circuit.Gate "qiskit.circuit.Gate"), [`Reset`](/docs/api/qiskit/circuit#qiskit.circuit.Reset "qiskit.circuit.Reset"), [`Barrier`](/docs/api/qiskit/circuit#qiskit.circuit.Barrier "qiskit.circuit.Barrier"), [`Measure`](/docs/api/qiskit/circuit#qiskit.circuit.Measure "qiskit.circuit.Measure"), and operators such as [`Clifford`](/docs/api/qiskit/qiskit.quantum_info.Clifford "qiskit.quantum_info.Clifford").

The main purpose is to allow abstract mathematical objects to be added directly onto abstract circuits, and for the exact syntheses of these to be determined later, during compilation.

**Example**

Add a Clifford and a Toffoli gate to a [`QuantumCircuit`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit "qiskit.circuit.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')
```

![Circuit diagram output by the previous code.](https://eu-de.quantum.cloud.ibm.com/docs/images/api/qiskit/qiskit-circuit-Operation-1.avif)

## Attributes

### name

Unique string identifier for operation type.

### num\_clbits

Number of classical bits.

### num\_qubits

Number of qubits.
