class qiskit.circuit.QuantumRegister(size=None, name=None, bits=None)[source]#

Bases: Register

Implement a quantum register.

Create a new generic register.

Either the size or the bits argument must be provided. If size is not None, the register will be pre-populated with bits of the correct type.

  • size (int) – Optional. The number of bits to include in the register.

  • name (str) – Optional. The name of the register. If not provided, a unique name will be auto-generated from the register type.

  • bits (list[Bit]) – Optional. A list of Bit() instances to be used to populate the register.

  • CircuitError – if both the size and bits arguments are provided, or if neither are.

  • CircuitError – if size is not valid.

  • CircuitError – if name is not a valid name according to the OpenQASM spec.

  • CircuitError – if bits contained duplicated bits.

  • CircuitError – if bits contained bits of an incorrect type.


instances_counter = count(3)#

Get the register name.

name_format = re.compile('[a-z][a-zA-Z0-9_]*')#
prefix = 'q'#

Get the register size.



Find the index of the provided bit within this register.


Return OPENQASM string for this register.

Deprecated since version 0.23.0: The method qiskit.circuit.quantumregister.QuantumRegister.qasm() is deprecated as of qiskit-terra 0.23.0. It will be removed no earlier than 3 months after the release date. Correct exporting to OpenQASM 2 is the responsibility of a larger exporter; it cannot safely be done on an object-by-object basis without context. No replacement will be provided, because the premise is wrong.